CCF-CSP 202006-1 线性分类器(C语言)
#include <stdio.h>
struct Point{
int x,y;
char t;
}p[1001];
struct Lin{
int a,b,c;
}l[25];
int main(){
int n,m,i,j,k;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++){
scanf("%d %d %c",&p[i].x,&p[i].y,&p[i].t);
}
for(i=0;i<m;i++){
scanf("%d%d%d",&l[i].a,&l[i].b,&l[i].c);
}
int f;
int flag;
for(i=0;i<m;i++){
f = l[i].a+l[i].b * p[0].x+l[i].c*p[0].y;
if((f>0&&p[0].t=='A')||(f<0&&p[0].t=='B')){
flag = 1;
}
else{
flag = 0;
}
for(j=0;j<n;j++){
f = l[i].a+l[i].b * p[j].x+l[i].c*p[j].y;
if(flag){
if(!((f>0&&p[j].t=='A')||(f<0&&p[j].t=='B'))){
printf("No\n");
break;
}
}
else{
if(!((f>0&&p[j].t=='B')||(f<0&&p[j].t=='A'))){
printf("No\n");
break;
}
}
}
if(j==n){
printf("Yes\n");
}
}
return 0;
}