WA求调
查看原帖
WA求调
1414950
a_void楼主2024/11/26 17:53
#include<bits/stdc++.h>
using namespace std;
bool chg[5][5][5];
int W,I,N,G;
char c;
int a,b;
void getin(int m,int k){
	for(int i=1;i<=m;i++){
		cin>>c;switch(c){
			case'W':a=1;
			case'I':a=2;
			case'N':a=3;
			case'G':a=4;
		}
		cin>>c;switch(c){
			case'W':b=1;
			case'I':b=2;
			case'N':b=3;
			case'G':b=4;
		}
		chg[a][b][k]=1;
	}
}
const int M=2e2+5;
string s;
int n;
int dp[M][M][5];
void init(){
	n=s.size();
	s=" "+s;
	for(int i=1;i<=n;i++){
		int k;
		switch(s[i]){
			case'W':k=1;
			case'I':k=2;
			case'N':k=3;
			case'G':k=4;
		}
		dp[i][i][k]=1;
	}
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin>>W>>I>>N>>G;
	getin(W,1);
	getin(I,2);
	getin(N,3);
	getin(G,4);
	cin>>s;
	init();
	for(int len=2;len<=n;len++)
		for(int i=1,j=len;j<=n;i++,j++)
			for(int k=i;k<=j-1;k++)
				for(int _1=1;_1<=4;_1++)
					for(int _2=1;_2<=4;_2++)
						for(int _3=1;_3<=4;_3++)
							dp[i][j][_3]=(dp[i][k][_1] and dp[k+1][j][_2] and chg[_1][_2][_3]);
	bool f=1;
	if(dp[1][n][1])	f=0,cout<<"W";
	if(dp[1][n][2])	f=0,cout<<"I";
	if(dp[1][n][3])	f=0,cout<<"N";
	if(dp[1][n][4])	f=0,cout<<"G";
	if(f)	cout<<"The name is wrong!";
	return 0;
}
2024/11/26 17:53
加载中...