Submission #104591

#TimeUsernameProblemLanguageResultExecution timeMemory
104591antimirageLamps (JOI19_lamps)C++14
0 / 100
141 ms67852 KiB
# include <bits/stdc++.h> using namespace std; const int N = 2005; int n, dp[N][N][2], pref[N][2], fl[N]; string a, b; int calc (int l, int r, int type){ if (l > r) return 0; if (dp[l][r][type] < 1e9) return dp[l][r][type]; int &ans = dp[l][r][type]; if (type == 0){ if ( a[l] == b[l] ){ ans = calc(l + 1, r, type); return ans; } if ( a[r] == b[r] ){ ans = calc(l, r - 1, type); return ans; } ans = min(ans, pref[r][0] ); } } main(){ memset( dp, 0x3f3f3f3f, sizeof(dp) ); cin >> n >> a >> b; a = ' ' + a; b = ' ' + b; for (int i = 1; i <= n; i++){ if (i > 1 && a[i] != a[i - 1]) fl[i]++; fl[i] += fl[i - 1]; if (b[i] != b[i - 1]) pref[i][ b[i] - 48 ] = 1; pref[i][0] += pref[i - 1][0]; pref[i][1] += pref[i - 1][1]; } assert(fl[n] == 0); cout << pref[n][1] << endl; // calc(1, n, 0); // calc(1, n, 1); // // cout << min( dp[1][n][0], dp[1][n][1] ) << endl; }

Compilation message (stderr)

lamp.cpp:34:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
lamp.cpp: In function 'int calc(int, int, int)':
lamp.cpp:32:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...