Submission #217331

# Submission time Handle Problem Language Result Execution time Memory
217331 2020-03-29T12:24:27 Z pit4h Lamps (JOI19_lamps) C++14
0 / 100
5 ms 640 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]);
			}
		}
	}
	assert(ans!=n);
	cout<<ans;
}
# Verdict Execution time Memory Grader output
1 Runtime error 5 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 5 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 384 KB Output is correct
2 Runtime error 5 ms 640 KB Execution killed with signal 11 (could be triggered by violating memory limits)
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 5 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -