Submission #217329

# Submission time Handle Problem Language Result Execution time Memory
217329 2020-03-29T12:22:42 Z pit4h Lamps (JOI19_lamps) C++14
4 / 100
258 ms 3784 KB
#include<bits/stdc++.h>
using namespace std;
int dp[2][4][4][4];
int main() {
	ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int n;
	string s, t;
	cin>>n>>s>>t;
	for(int i=0; i<=1; ++i) {
		for(int a=0; a<=3; ++a) {
			for(int b=0; b<=3; ++b) {
				for(int c=0; c<=3; ++c) {
					dp[i][a][b][c] = n;
				}
			}
		}
	}
	dp[0][0][0][0]=0;
	for(int i=1; i<=n; ++i) {
		int v1 = n;
		for(int a=0; a<=3; ++a) {
			for(int b=0; b<=3; ++b) {
				for(int c=0; c<=3; ++c) {
					dp[i%2][a][b][c]=n;
					v1 = min(v1, dp[(i+1)%2][a][b][c]);
				}
			}
		}
		if(s[i-1]==t[i-1]) {
			dp[i%2][0][0][0] = v1;
		}
		for(int a=1; a<=3; ++a) {
			int v2 = n;
			for(int j=0; j<=3; ++j) {
				for(int k=0; k<=3; ++k) {
					v2 = min(v2, dp[(i+1)%2][a][j][k]);
					v2 = min(v2, dp[(i+1)%2][j][a][k]);
					v2 = min(v2, dp[(i+1)%2][j][k][a]);
				}
			}
			if((a==1 && t[i-1]=='0') || (a==2 && t[i-1]=='1') || (a==3 && s[i-1]!=t[i-1])) {
				dp[i%2][a][0][0] = min(v1+1, v2);
			}
			for(int b=1; b<=3; ++b) {
				if(b==a) continue;
				int v3 = n;
				for(int j=0; j<=3; ++j) {
					v3 = min(v3, dp[(i+1)%2][a][b][j]);
					v3 = min(v3, dp[(i+1)%2][j][a][b]);
				}
				if((a==1 && t[i-1]=='0') || (a==2 && t[i-1]=='1') || (a==3 && ((b==1 && t[i-1]=='1') || (b==2 && t[i-1]=='0')))) {
					dp[i%2][a][b][0] = min(v1+2, min(v2+1, v3)); 	
				}
				else {
					continue;
				}
				for(int c=1; c<=3; ++c) {
					if(c==a || c==b) continue;
					int v4 = dp[(i+1)%2][a][b][c];
					dp[i%2][a][b][c] = min(v1+3, min(v2+2, min(v3+1, v4))); 	
				}
			}
		}
	}
	int ans = n;
	for(int a=0; a<=3; ++a) {
		for(int b=0; b<=3; ++b) {
			for(int c=0; c<=3; ++c) {
				ans = min(ans, dp[n%2][a][b][c]);
			}
		}
	}
	cout<<ans;
}
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 4 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 4 ms 384 KB Output is correct
6 Correct 4 ms 384 KB Output is correct
7 Correct 5 ms 384 KB Output is correct
8 Correct 5 ms 384 KB Output is correct
9 Correct 5 ms 384 KB Output is correct
10 Correct 5 ms 384 KB Output is correct
11 Correct 5 ms 384 KB Output is correct
12 Correct 4 ms 384 KB Output is correct
13 Correct 5 ms 384 KB Output is correct
14 Correct 5 ms 384 KB Output is correct
15 Correct 5 ms 384 KB Output is correct
16 Incorrect 4 ms 384 KB Output isn't correct
17 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 4 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 4 ms 384 KB Output is correct
6 Correct 4 ms 384 KB Output is correct
7 Correct 5 ms 384 KB Output is correct
8 Correct 5 ms 384 KB Output is correct
9 Correct 5 ms 384 KB Output is correct
10 Correct 5 ms 384 KB Output is correct
11 Correct 5 ms 384 KB Output is correct
12 Correct 4 ms 384 KB Output is correct
13 Correct 5 ms 384 KB Output is correct
14 Correct 5 ms 384 KB Output is correct
15 Correct 5 ms 384 KB Output is correct
16 Incorrect 4 ms 384 KB Output isn't correct
17 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 4 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 4 ms 384 KB Output is correct
7 Correct 233 ms 3668 KB Output is correct
8 Correct 250 ms 3732 KB Output is correct
9 Correct 246 ms 3740 KB Output is correct
10 Correct 252 ms 3740 KB Output is correct
11 Correct 250 ms 3784 KB Output is correct
12 Correct 258 ms 3740 KB Output is correct
13 Correct 237 ms 3740 KB Output is correct
14 Correct 239 ms 3784 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 4 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 4 ms 384 KB Output is correct
6 Correct 4 ms 384 KB Output is correct
7 Correct 5 ms 384 KB Output is correct
8 Correct 5 ms 384 KB Output is correct
9 Correct 5 ms 384 KB Output is correct
10 Correct 5 ms 384 KB Output is correct
11 Correct 5 ms 384 KB Output is correct
12 Correct 4 ms 384 KB Output is correct
13 Correct 5 ms 384 KB Output is correct
14 Correct 5 ms 384 KB Output is correct
15 Correct 5 ms 384 KB Output is correct
16 Incorrect 4 ms 384 KB Output isn't correct
17 Halted 0 ms 0 KB -