社区讨论

0wa求调

P11878[威海市赛2024] 城堡中的皇后参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@miprdk52
此快照首次捕获于
2025/12/03 16:42
3 个月前
此快照最后确认于
2025/12/05 16:20
3 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int a;
//P11878
/*struct iny{
	int xx;
	int yy;
};*/
int jx[8]={1,1,-1,-1,2,2,-2,-2};
int jy[8]={2,-2,2,-2,1,-1,1,-1};
int main(){
	cin>>a;
	for(int i=1;i<=a;i++){
		int s[13][13];
		int kx,ky,kX,kY;
		string h;
		cin>>h;
		/*vector<iny> horse;
		vector<iny> p;
		vector<iny> q;
		vector<iny> r;
		vector<iny> e;
		vector<iny> Horse;
		vector<iny> P;
		vector<iny> Q;
		vector<iny> R;
		vector<iny> E;*/
		for(int g=1,x=2,y=2;g<h.size();g++){
			if(h[i]=='/'){
				x=1;
				y++;
			}
			else if(h[i]>='0'&&h[i]<='9'){
				x+=h[i]-1;
			}
			else{
				s[x][y]=h[i];
			}
			/*iny d;
			d.xx=x;
			d.yy=y;
			if(h[i]=='h')horse.push_back(d);
			if(h[i]=='p')p.push_back(d);
			if(h[i]=='q')q.push_back(d);
			if(h[i]=='r')r.push_back(d);
			if(h[i]=='e')e.push_back(d);
			if(h[i]=='H')Horse.push_back(d);
			if(h[i]=='P')P.push_back(d);
			if(h[i]=='Q')Q.push_back(d);
			if(h[i]=='R')R.push_back(d);
			if(h[i]=='E')E.push_back(d);*/
			if(h[i]=='k'){
				kx=x;
				ky=y;
			}
			if(h[i]=='K'){
				kX=x;
				kY=y;
			}
		}
		bool f=0;
		for(int j=0;j<8;j++){
			if(s[kx+jx[i]][ky+jy[i]]=='H'){
				cout<<"check"<<endl;
				f=1;
				break;
			}
			if(s[kX+jx[i]][kY+jy[i]]=='h'){
				cout<<"CHECK"<<endl;
				f=1;
				break;
			}
		}
		if(f==1)continue;
		if(s[kx+1][ky+1]=='P'||s[kx-1][ky+1]=='P'){
			cout<<"check"<<endl;
			continue;
		}
		if(s[kX+1][kY+1]=='p'||s[kX-1][kY+1]=='p'){
			cout<<"CHECK"<<endl;
			continue;
		}
		for(int j=kx;j<=9;j++){
			if(s[j][ky]=='Q'||s[j][ky]=='R'){
				cout<<"check"<<endl;
				f=1;
				break;
			}
			if(s[j][ky]!=0)break;
		}
		if(f==1)continue;
		for(int j=kx;j>=2;j--){
			if(s[j][ky]=='Q'||s[j][ky]=='R'){
				cout<<"check"<<endl;
				f=1;
				break;
			}
			if(s[j][ky]!=0)break;
		}
		if(f==1)continue;
		for(int j=kX;j<=9;j++){
			if(s[j][kY]=='q'||s[j][kY]=='r'){
				cout<<"CHECK"<<endl;
				f=1;
				break;
			}
			if(s[j][kY]!=0)break;
		}
		if(f==1)continue;
		for(int j=kX;j>=2;j--){
			if(s[j][kY]=='q'||s[j][kY]=='r'){
				cout<<"CHECK"<<endl;
				f=1;
				break;
			}
			if(s[j][kY]!=0)break;
		}
		if(f==1)continue;
		
		for(int j=ky;j<=9;j++){
			if(s[kx][j]=='Q'||s[kx][j]=='R'){
				cout<<"check"<<endl;
				f=1;
				break;
			}
			if(s[kx][j]!=0)break;
		}
		if(f==1)continue;
		for(int j=ky;j>=2;j--){
			if(s[kx][j]=='Q'||s[kx][j]=='R'){
				cout<<"check"<<endl;
				f=1;
				break;
			}
			if(s[kx][j]!=0)break;
		}
		if(f==1)continue;
		for(int j=kY;j<=9;j++){
			if(s[kX][j]=='q'||s[kX][j]=='r'){
				cout<<"CHECK"<<endl;
				f=1;
				break;
			}
			if(s[kX][j]!=0)break;
		}
		if(f==1)continue;
		for(int j=kY;j>=2;j--){
			if(s[kX][j]=='q'||s[kX][j]=='r'){
				cout<<"CHECK"<<endl;
				f=1;
				break;
			}
			if(s[kX][j]!=0)break;
		}
		if(f==1)continue;
		bool ru=0,rd=0,lu=0,ld=0;
		for(int j=1;j<=7;j++){
			/*if(s[kx+j][ky+j]=='Q'||s[kx-j][ky+j]=='Q'||s[kx+j][ky-j]=='Q'||s[kx-j][ky-j]=='Q'){
				cout<<"check"<<endl;
				f=1;
				break;
			}
			if(s[kx+j][ky+j]=='B'||s[kx-j][ky+j]=='B'||s[kx+j][ky-j]=='B'||s[kx-j][ky-j]=='B'){
				cout<<"check"<<endl;
				f=1;
				break;
			}*/
			if(!rd){
				int d=s[kx+j][ky+j];
				if(d=='Q'||d=='B'){
					cout<<"check"<<endl;
					f=1;
					break;
				}
				if(d!=0)rd=1;
				if(kx+j>9)rd=1;
				if(ky+j>9)rd=1;
			}
			if(!ru){
				int d=s[kx-j][ky+j];
				if(d=='Q'||d=='B'){
					cout<<"check"<<endl;
					f=1;
					break;
				}
				if(d!=0)ru=1;
				if(kx-j<2)ru=1;
				if(ky+j>9)ru=1;
			}
			if(!lu){
				int d=s[kx-j][ky-j];
				if(d=='Q'||d=='B'){
					cout<<"check"<<endl;
					f=1;
					break;
				}
				if(d!=0)lu=1;
				if(kx-j<2)lu=1;
				if(ky-j<2)lu=1;
			}
			if(!ld){
				int d=s[kx+j][ky-j];
				if(d=='Q'||d=='B'){
					cout<<"check"<<endl;
					f=1;
					break;
				}
				if(d!=0)ld=1;
				if(kx+j>9)ld=1;
				if(ky-j<2)ld=1;
			}
		}
		ru=0;
		rd=0;
		lu=0;
		ld=0;
		for(int j=1;j<=7;j++){
			if(!rd){
				int d=s[kY+j][kY+j];
				if(d=='q'||d=='b'){
					cout<<"CHECK"<<endl;
					f=1;
					break;
				}
				if(d!=0)rd=1;
				if(kX+j>9)rd=1;
				if(kY+j>9)rd=1;
			}
			if(!ru){
				int d=s[kX-j][kY+j];
				if(d=='q'||d=='b'){
					cout<<"CHECK"<<endl;
					f=1;
					break;
				}
				if(d!=0)ru=1;
				if(kX-j<2)ru=1;
				if(kY+j>9)ru=1;
			}
			if(!lu){
				int d=s[kX-j][kY-j];
				if(d=='q'||d=='b'){
					cout<<"CHECK"<<endl;
					f=1;
					break;
				}
				if(d!=0)lu=1;
				if(kX-j<2)lu=1;
				if(kY-j<2)lu=1;
			}
			if(!ld){
				int d=s[kX+j][kY-j];
				if(d=='q'||d=='b'){
					cout<<"CHECK"<<endl;
					f=1;
					break;
				}
				if(d!=0)ld=1;
				if(kX+j>9)ld=1;
				if(kY-j<2)ld=1;
			}
		}
		if(f)continue;
		cout<<"none"<<endl;
	}
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...