Submission #1213205

#TimeUsernameProblemLanguageResultExecution timeMemory
1213205minhpkLamps (JOI19_lamps)C++20
100 / 100
50 ms33568 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;
int a;
string s,s1;
int f[1000001][4];
int bruh=1e18;

char exc(char c,int x){
    if (x==1){
        return '1';
    }else if (x==2){
        return '0';
    }else{
        return c;
    }
}

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> a;
    cin >> s >> s1;
    s='#'+s;
    s1='#'+s1;
    for (int i=0;i<=a;i++){
         for (int j=1;j<=3;j++){
             f[i][j]=bruh;
         }
    }
    f[0][3]=0;
    for (int i=0;i<a;i++){
         for (int j=1;j<=3;j++){
              for (int k=1;k<=3;k++){
                   int cost= f[i][j];
                   if ((j!=k || j==3) && k!=3){
                       cost++;
                   }
                   if (exc(s[i+1],k)!=s1[i+1] && (i==0 || exc(s[i],j)==s1[i])){
                     //cout << "ok" << "\n";
                     cost++;
                   }
                   f[i+1][k]=min(f[i+1][k],cost);
              }
         }
    }

    int min1=min({f[a][1],f[a][2],f[a][3]});
    cout << min1 << "\n";

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...