답안 #796167

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
796167 2023-07-28T07:18:05 Z vjudge1 Lamps (JOI19_lamps) C++17
4 / 100
25 ms 35668 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(a[i] == b[i])
            d[i] = (i == 0 ? 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;
      |                                                                            ^~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 324 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Incorrect 0 ms 212 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 324 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Incorrect 0 ms 212 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 328 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 25 ms 35640 KB Output is correct
8 Correct 21 ms 35660 KB Output is correct
9 Correct 22 ms 35668 KB Output is correct
10 Correct 24 ms 35660 KB Output is correct
11 Correct 22 ms 35612 KB Output is correct
12 Correct 23 ms 35628 KB Output is correct
13 Correct 22 ms 35656 KB Output is correct
14 Correct 21 ms 35660 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 324 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Incorrect 0 ms 212 KB Output isn't correct
4 Halted 0 ms 0 KB -