#include<bits/stdc++.h>
using namespace std;
inline int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0' && ch<='9')
x=x*10+ch-'0',ch=getchar();
return x*f;
}
int n,nx,ny;
struct Node
{
int x,y;
char n;
}a[500005];
bool check1(int k)
{
if(a[k].x!=nx&&a[k].y!=ny) return false;
if(a[k].x==nx)
{
for(int i=1;i<=n;i++){
if(a[i].x==a[k].x&&i!=k){
if(abs(a[k].x-nx)==abs(a[k].x-a[i].x)+abs(nx-a[i].x)) return false;
}
}
}
else
{
for(int i=1;i<=n;i++){
if(a[i].y==a[k].y&&i!=k){
if(abs(a[k].y-ny)==abs(a[k].y-a[i].y)+abs(ny-a[i].y)) return false;
}
}
}
return true;
}
bool check2(int k)
{
int xy=nx+ny;
if(a[k].x+a[k].y!=xy) return false;
for(int i=1;i<=n;i++){
if((a[i].x>nx&&a[i].y<nx&&a[k].x>nx&&a[k].y<nx)
||(a[i].x>nx&&a[i].y>nx&&a[k].x>nx&&a[k].y>nx)
||(a[i].x<nx&&a[i].y<nx&&a[k].x<nx&&a[k].y<nx)
||(a[i].x<nx&&a[i].y>nx&&a[k].x<nx&&a[k].y>nx)) return false;
}
return true;
}
int main()
{
n=read(); nx=read(),ny=read();
for(int i=1;i<=n;i++)
{
a[i].n=getchar();
a[i].x=read();
a[i].y=read();
}
bool flag=false;
for(int i=1;i<=n;i++)
{
if(a[i].n=='B') flag=check1(i);
else if(a[i].n=='R') flag=check2(i);
else flag=(check1||check2);
}
if(flag) {printf("YES"); return 0;}
printf("NO"); return 0;
}```
请问谁可以帮我看一下为什么WA吗?玄关