제출 #1163370

#제출 시각아이디문제언어결과실행 시간메모리
1163370DangKhoizzzzLamps (JOI19_lamps)C++20
4 / 100
24 ms17992 KiB
#include <bits/stdc++.h> #define ll long long #define fi first #define se second #define pii pair <int , int> #define arr3 array <int , 3> /* + array size limit ??? + special case ??? n = 1? + time limit ??? */ using namespace std; const int INF = 1e18 + 7; const int maxn = 1e6 + 7; int n, mark[maxn], dp[maxn], stb[maxn], stmark[maxn]; char a[maxn], b[maxn]; void solve() { cin >> n; for(int i = 1; i <= n; i++) cin >> a[i]; for(int i = 1; i <= n; i++) cin >> b[i]; if(b[1] == '1') b[0] = '0'; else b[0] = '1'; for(int i = 1; i <= n; i++) { if(b[i] == b[i-1]) { stb[i] = stb[i-1]; } else stb[i] = i; if(a[i] != b[i]) mark[i] = 1; if(mark[i]) { if(mark[i-1] == 1) { stmark[i] = stmark[i-1]; } else stmark[i] = i; } } dp[0] = 0; for(int i = 1; i <= n; i++) { dp[i] = dp[i-1] + (a[i] != b[i]); dp[i] = min(dp[i], dp[stb[i] - 1] + 1); if(mark[i]) dp[i] = min(dp[i], dp[stmark[i] - 1] + 1); } cout << dp[n] << '\n'; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); solve(); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

lamp.cpp:16:22: warning: overflow in conversion from 'double' to 'int' changes value from '1.0e+18' to '2147483647' [-Woverflow]
   16 | const int INF = 1e18 + 7;
      |                 ~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...