RT WA
#include
#include
#include
using namespace std;
bool vis[14][14],g[11][11];
char id[11];
int hx[11],hy[11];
void horse(int x,int y){ //标记马能攻击的位置
if(x-2>0&&!g[x-1][y]) { if(y-1>0) vis[x-2][y-1]=1;
if(y+1<10) vis[x-2][y+1]=1;
}
if(x+2<11&&!g[x+1][y]) { if(y-1>0) vis[x+2][y-1]=1;
if(y+1<10) vis[x+2][y+1]=1;
}
if(y-2>0&&!g[x][y-1]) { if(x-1>0) vis[x-1][y-2]=1;
if(x+1<11) vis[x+1][y-2]=1;
}
if(y+2<10&&!g[x][y+1]) { if(x-1>0) vis[x-1][y+2]=1;
if(x+1<11) vis[x+1][y+2]=1;
}
}
void car(int x,int y){ int i=x-1; //标记车能攻击的位置
while(i>0&&!g[i][y]) vis[i--][y]=1;if(i>0)vis[i][y]=1;
i=x+1;
while(i<11&&!g[i][y]) vis[i++][y]=1;if(i<11)vis[i][y]=1;
i=y-1;
while(i>0&&!g[x][i]) vis[x][i--]=1;if(i>0)vis[x][i]=1;
i=y+1;
while(i<10&&!g[x][i]) vis[x][i++]=1;if(i<10)vis[x][i]=1;
}
void general(int x,int y){ //标记将军能攻击的位置
int i=x-1;
while(i>0&&!g[i][y]) vis[i--][y]=1;if(i>0)vis[i][y]=1;
}
void pao(int x,int y){ //标记炮能攻击的位置
int i=x-1;
while(i>0&&!g[i][y]) i--;i--;
while(i>0&&!g[i][y]) vis[i--][y]=1;if(i>0);vis[i][y]=1;
i=x+1;
while(i<11&&!g[i][y]) i++;i++;
while(i<11&&!g[i][y]) vis[i++][y]=1;if(i<11)vis[i][y]=1;
i=y-1;
while(i>0&&!g[x][i]) i--;i--;
while(i>0&&!g[x][i]) vis[x][i--]=1;if(i>0)vis[x][i]=1;//cout< i=y+1;
while(i<10&&!g[x][i]) i++;i++;
while(i<10&&!g[x][i]) vis[x][i++]=1;if(i<10)vis[x][i]=1;
}
void upvis(char c,int x,int y){
if(c=='G') general(x,y);
else if(c=='R') car(x,y);
else if(c=='C') pao(x,y);
else if(c=='H') horse(x,y);
}
int main(){
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
int n,x,y;
while(scanf("%d%d%d",&n,&x,&y)&&n&&x&&y){
memset(vis,0,sizeof(vis));
memset(g,0,sizeof(g));
for(int i=0;i getchar();
scanf("%c%d%d",&id[i],&hx[i],&hy[i]);
g[hx[i]][hy[i]]=1;
}
for(int i=0;i int ok=1;
if(y-1>3&&(!vis[x][y-1])) ok=0; //判断黑帅4个方向是否会被攻击
else if(y+1<7&&(!vis[x][y+1])) ok=0;
else if(x-1>0&&(!vis[x-1][y])) ok=0;
else if(x+1<4&&(!vis[x+1][y])) ok=0;
puts(ok?"YES":"NO");
}
return 0;
}
#include
#include
#include
using namespace std;
bool vis[14][14],g[11][11];
char id[11];
int hx[11],hy[11];
void horse(int x,int y){ //标记马能攻击的位置
if(x-2>0&&!g[x-1][y]) { if(y-1>0) vis[x-2][y-1]=1;
if(y+1<10) vis[x-2][y+1]=1;
}
if(x+2<11&&!g[x+1][y]) { if(y-1>0) vis[x+2][y-1]=1;
if(y+1<10) vis[x+2][y+1]=1;
}
if(y-2>0&&!g[x][y-1]) { if(x-1>0) vis[x-1][y-2]=1;
if(x+1<11) vis[x+1][y-2]=1;
}
if(y+2<10&&!g[x][y+1]) { if(x-1>0) vis[x-1][y+2]=1;
if(x+1<11) vis[x+1][y+2]=1;
}
}
void car(int x,int y){ int i=x-1; //标记车能攻击的位置
while(i>0&&!g[i][y]) vis[i--][y]=1;if(i>0)vis[i][y]=1;
i=x+1;
while(i<11&&!g[i][y]) vis[i++][y]=1;if(i<11)vis[i][y]=1;
i=y-1;
while(i>0&&!g[x][i]) vis[x][i--]=1;if(i>0)vis[x][i]=1;
i=y+1;
while(i<10&&!g[x][i]) vis[x][i++]=1;if(i<10)vis[x][i]=1;
}
void general(int x,int y){ //标记将军能攻击的位置
int i=x-1;
while(i>0&&!g[i][y]) vis[i--][y]=1;if(i>0)vis[i][y]=1;
}
void pao(int x,int y){ //标记炮能攻击的位置
int i=x-1;
while(i>0&&!g[i][y]) i--;i--;
while(i>0&&!g[i][y]) vis[i--][y]=1;if(i>0);vis[i][y]=1;
i=x+1;
while(i<11&&!g[i][y]) i++;i++;
while(i<11&&!g[i][y]) vis[i++][y]=1;if(i<11)vis[i][y]=1;
i=y-1;
while(i>0&&!g[x][i]) i--;i--;
while(i>0&&!g[x][i]) vis[x][i--]=1;if(i>0)vis[x][i]=1;//cout< i=y+1;
while(i<10&&!g[x][i]) i++;i++;
while(i<10&&!g[x][i]) vis[x][i++]=1;if(i<10)vis[x][i]=1;
}
void upvis(char c,int x,int y){
if(c=='G') general(x,y);
else if(c=='R') car(x,y);
else if(c=='C') pao(x,y);
else if(c=='H') horse(x,y);
}
int main(){
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
int n,x,y;
while(scanf("%d%d%d",&n,&x,&y)&&n&&x&&y){
memset(vis,0,sizeof(vis));
memset(g,0,sizeof(g));
for(int i=0;i getchar();
scanf("%c%d%d",&id[i],&hx[i],&hy[i]);
g[hx[i]][hy[i]]=1;
}
for(int i=0;i int ok=1;
if(y-1>3&&(!vis[x][y-1])) ok=0; //判断黑帅4个方向是否会被攻击
else if(y+1<7&&(!vis[x][y+1])) ok=0;
else if(x-1>0&&(!vis[x-1][y])) ok=0;
else if(x+1<4&&(!vis[x+1][y])) ok=0;
puts(ok?"YES":"NO");
}
return 0;
}