Submission #796117

# Submission time Handle Problem Language Result Execution time Memory
796117 2023-07-28T06:37:16 Z vjudge1 Lamps (JOI19_lamps) C++17
4 / 100
26 ms 35680 KB

// Author : حسن

#include <bits/stdc++.h>



using namespace std;

#define TL ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define rall(s) s.rbegin(),s.rend()
#define all(s) s.begin(),s.end()
#define pb push_back
#define fi first
#define se second
#define ll long long
#define ld long double
#define YES cout<<"YES\n"
#define Yes cout<<"Yes\n"
#define yes cout<<"yes\n"
#define NO cout<<"NO\n"
#define No cout<<"No\n"
#define no cout<<"no\n"


const int N = 1e6 + 9 , mod = 1e9 + 7;
ll c[N] = {} , d[N] = {} , a[N] = {}, b[N] = {} , dp[N][3];

void solve(){
    ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
    cin>>n;
    string a , b;
    cin>>a>>b;
    for(i = 0; i < n; i++){
        x = a[i] - '0';
        y = b[i] - '0';
        if(i == 0){
            if(a[i] == b[i]){
                dp[i][x] = 1;
                dp[i][1 - x]  = dp[i][2] = 2;
            }else {
                dp[i][1 - x] = 1;
                dp[i][x] = 2;
                dp[i][2] = 1;
            }
        }else {
            if(a[i] == b[i]){
                dp[i][x] = min(d[i - 1] + 1  , dp[i - 1][x]);
                dp[i][1 - x] = dp[i][2] = d[i - 1] + 2;
                dp[i][1 - x] = min(dp[i][1 - x] , dp[i - 1][1 - x] + 1 - (b[i - 1] == b[i]));
                dp[i][2] = min(dp[i][2] , dp[i - 1][2] + 1 - (a[i - 1] == b[i - 1]));
            }else {
                dp[i][1 - x] = 1 + d[i - 1];
                dp[i][x] = 2 + d[i - 1];
                dp[i][2] = 1 + d[i - 1];
                dp[i][1 - x] = min(dp[i][1 - x] , dp[i - 1][1 - x]);
                dp[i][x] = min(dp[i][x] , dp[i - 1][x] + 1 - (b[i - 1] == b[i]));
                dp[i][2] = min(dp[i][2] , dp[i - 1][2]);
            }
        }
        d[i] = min({dp[i][0] , dp[i][1] , dp[i][2]});
        if(i == 0 && a[i] == b[i])
            d[i] = 0;
        if(a[i] == b[i] && i)
            d[i] =d[i - 1];
    }
    cout<<d[n - 1];
}

int main(){

     TL;
     /*
     #ifndef ONLINE_JUDGE
     freopen("input.txt", "r", stdin);
     freopen("output.txt", "w", stdout);
     #endif
     */
int t = 1;
//cin>>t;

while(t--)
     {
     solve();
     }

}
// Author : حسن

Compilation message

lamp.cpp: In function 'void solve()':
lamp.cpp:31:8: warning: unused variable 'q' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |        ^
lamp.cpp:31:16: warning: unused variable 'j' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                ^
lamp.cpp:31:20: warning: unused variable 'm' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                    ^
lamp.cpp:31:28: warning: unused variable 'z' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                            ^
lamp.cpp:31:32: warning: unused variable 's' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                ^
lamp.cpp:31:40: warning: unused variable 'f' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                        ^
lamp.cpp:31:43: warning: unused variable 'l' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                           ^
lamp.cpp:31:47: warning: unused variable 'r' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                               ^
lamp.cpp:31:51: warning: unused variable 'k' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                                   ^
lamp.cpp:31:59: warning: variable 'y' set but not used [-Wunused-but-set-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                                           ^
lamp.cpp:31:63: warning: unused variable 'mn' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                                               ^~
lamp.cpp:31:76: warning: unused variable 'mx' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                                                            ^~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 320 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 328 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Incorrect 0 ms 212 KB Output isn't correct
14 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 320 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 328 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Incorrect 0 ms 212 KB Output isn't correct
14 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 328 KB Output is correct
7 Correct 21 ms 35636 KB Output is correct
8 Correct 26 ms 35668 KB Output is correct
9 Correct 21 ms 35612 KB Output is correct
10 Correct 22 ms 35640 KB Output is correct
11 Correct 21 ms 35612 KB Output is correct
12 Correct 24 ms 35588 KB Output is correct
13 Correct 22 ms 35624 KB Output is correct
14 Correct 22 ms 35680 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 320 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 328 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Incorrect 0 ms 212 KB Output isn't correct
14 Halted 0 ms 0 KB -