写这篇文章主要是记录自己犯的最低级的错误----没有加换行符(本人小白,欢迎大佬批评指正)
如上为找bug拿OJ测试的记录:(以后看到这篇文章会被自己蠢死!)
如下为我不成熟的、不简洁的代码:
#include <iostream>
using namespace std;
/** c0+c1*x+c2*y **/
int main()
{
int n,m,i,j,c0,flag1[100000]={0},flag2[100000]={0},c1,c2,x[100000],y[100000];
char t[100000];
scanf("%d %d",&n, &m);
for(i=1;i<=n;i++)
{
scanf("%d %d",&x[i],&y[i]);
scanf(" %c",&t[i]);
}
for(i=1;i<=m;i++)
{
scanf("%d %d %d",&c0,&c1,&c2);
for(j=1;j<=n;j++)
{
if((t[j]=='A'&&c0+c1*x[j]+c2*y[j]>0)||(t[j]=='B'&&c0+c1*x[j]+c2*y[j]<0))
{
flag1[i]++;
}
if((t[j]=='A'&&c0+c1*x[j]+c2*y[j]<0)||(t[j]=='B'&&c0+c1*x[j]+c2*y[j]>0))
{
flag2[i]++;
}
}
}
for(i=1;i<=m;i++)
{
if(flag1[i]==n||flag2[i]==n)
printf("Yes\n"); //就是这里!太蠢了
else
printf("No\n"); //这儿也是!太蠢了
}
}