比赛 至少完成十道练习 评测结果 AAAAAAAAAA
题目名称 美丽的感觉 最终得分 100
用户昵称 Ostmbh 运行时间 0.006 s
代码语言 C++ 内存使用 1.31 MiB
提交时间 2017-05-21 08:58:43
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn=1000+10;
char A[maxn],B[maxn];
int fa[maxn],fb[maxn];
int ga[maxn],gb[maxn];
bool f[maxn][maxn]={0};
inline int abs(int x){
	return x>=0?x:-x;
}
int main(){
	freopen("card_.in","r",stdin);
	freopen("card_.out","w",stdout);
	int n;
	scanf("%d",&n);
	scanf("%s",A+1);
	scanf("%s",B+1);
	for(int i=1;i<=n;i++){
		fa[i]=fa[i-1];
		ga[i]=ga[i-1];
		if(A[i]=='0')
			fa[i]++;
		else ga[i]++;
	}
	for(int i=1;i<=n;i++){
		fb[i]=fb[i-1];
		gb[i]=gb[i-1];
		if(B[i]=='0')
			fb[i]++;
		else gb[i]++;
	}
	f[0][0]=1;
	for(int i=0;i<=n;i++)
		for(int j=0;j<=n;j++){
			if(i==0&&j==0)
				continue;
			if((f[i-1][j]||f[i][j-1])&&abs(fa[i]+fb[j]-ga[i]-gb[j])<=1)
				f[i][j]=1;
		}
	if(f[n][n])
		puts("Accepted!");
	else puts("Impossible!");
return 0;
}