注意要看输出的东西,开始输出了YES,但是让输出Yes!!!
其次注意要看所有的类别,不能只看一个
#include<iostream>
#include<vector>
using namespace std;
struct node
{
int x;
int y;
};
vector<node> A;
vector<node> B;
bool class_right(int a,int b,int c)
{
int class_a,class_b;
if(a+b*A[0].x+c*A[0].y>0){
class_a=1;
class_b=-1;
}
else{
class_a=-1;
class_b=1;
}
int cnt_a=0,cnt_b=0;
for(int i=0;i<A.size();i++){
int d=a+b*A[i].x+c*A[i].y;
if(d*class_a>0){
cnt_a++;
}
}
for(int i=0;i<B.size();i++){
int d=a+b*B[i].x+c*B[i].y;
if(d*class_b>0){
cnt_b++;
}
}
if((cnt_a==A.size())&&(cnt_b==B.size())){
return true;
}
return false;
}
int main()
{
int m,n;
cin>>n>>m;
for(int i=0;i<n;i++){
int x,y;
char c;
cin>>x>>y>>c;
node temp;
temp.x=x;
temp.y=y;
if(c=='A'){
A.push_back(temp);
}
else{
B.push_back(temp);
}
}
for(int i=0;i<m;i++){
int a,b,c;
cin>>a>>b>>c;
if(class_right(a,b,c)){
cout<<"Yes"<<endl;//注意要看输出的东西!!
}
else{
cout<<"No"<<endl;
}
}
return 0;
}