社区讨论
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 条回复,欢迎继续交流。
正在加载回复...