自己的
找不出来哪错了快疯了啊啊啊啊
#include<bits/stdc++.h>
using namespace std;
struct stu{
int x;
int y;
}A[1010],B[1010];
int main(){
int n,m;
cin>>n>>m;
int x,y,a,b,c,k=0,j=0;
char Z;
for(int i=0;i<n;i++){
cin>>a>>b>>Z;
if(Z=='A'){
A[j].x=a;
A[j].y=b;
j++;
}else{
B[k].x=a;
B[k].y=b;
k++;
}
}
for(int i=0;i<m;i++){
cin>>a>>b>>c;
int flag=1;
for(int q=0;q<j;q++){
for(int w=0;w<k;w++){
int r1=A[q].x*b+A[q].y*c+a;
int r2=B[w].x*b+B[w].y*c+a;
if(r1*r2>=0)
flag=0;
}
}
if(flag) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}
AC代码
#include<bits/stdc++.h>
using namespace std;
struct stu{
int x;
int y;
}A[1010],B[1010];
int main(){
int n,m;
cin>>n>>m;
int x,y,a,b,c,k=0,j=0;
char Z;
for(int i=0;i<n;i++){
cin>>a>>b>>Z;
if(Z=='A'){
A[j].x=a;
A[j].y=b;
j++;
}else{
B[k].x=a;
B[k].y=b;
k++;
}
}
for(int i=0;i<m;i++){
cin>>a>>b>>c;
int se=0,st=0;
for(int q=0;q<j;q++){
if(a+b*A[q].x+c*A[q].y>0) se++;
}
for(int q=0;q<k;q++){
if(a+b*B[q].x+c*B[q].y<0) st++;
}
if((se==j)&&(st==k)||(se==0)&&(st==0)) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}