HELP!!!急
查看原帖
HELP!!!急
691596
Unknown______Error楼主2023/5/20 21:09
using namespace std;
char a[5][5];
int fa,fb;
map<char,int> b;
int main(){
	for(int i=1;i<=3;i++){
		for(int j=1;j<=3;j++){
			cin>>a[i][j];
			b[a[i][j]]++;
		}
	}
	if(b['0']>b['X']||b['X']-1>b['0']){
		cout<<"illegal"<<endl;
		return 0;
	}
	if(b['.']>5){
		if(b['X']>b['0']) cout<<"second"<<endl;
		else cout<<"first"<<endl;
		return 0;
	}
	for(int i=1;i<=3;i++){
		int la=0,lb=0;
		for(int j=1;j<=3;j++){
			if(a[i][j]=='.'||(la&&lb)) break;
			if(a[i][j]=='X') la++;
			else lb++;
		}
		if(la==3) fa++;
		if(lb==3) fb++;
	}
	for(int i=1;i<=3;i++){
		int la=0,lb=0;
		for(int j=1;j<=3;j++){
			if(a[j][i]=='.'||(la&&lb)) break;
			if(a[j][i]=='X') la++;
			else lb++;
		}
		if(la==3) fa++;
		if(lb==3) fb++;
	}
	if(a[1][1]=='X'&&a[2][2]=='X'&&a[3][3]=='X') fa++;
	if(a[1][1]=='0'&&a[2][2]=='0'&&a[3][3]=='0') fb++;
	if(a[1][3]=='X'&&a[2][2]=='X'&&a[3][1]=='X') fa++;
	if(a[1][3]=='0'&&a[2][2]=='0'&&a[3][1]=='0') fb++;
	if(fa+fb>1){
		cout<<"illegal"<<endl;
		return 0;
	}
	if(fa){
		cout<<"the first player won"<<endl;
		return 0; 
	}
	if(fb){
		cout<<"the second player won"<<endl;
		return 0; 
	}
	if(b['.']==0){
		cout<<"draw"<<endl;
		return 0;
	}
	if(b['X']>b['0']) cout<<"second"<<endl;
	else cout<<"first"<<endl;
	return 0;
}
2023/5/20 21:09
加载中...