问题描述
解题思路
见代码
详细代码
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int i,j,n,m,q=0,w=0,e=0,r=0,flag=0;
scanf("%d %d",&n,&m);
int x[n],y[n],a1[m],a2[m],a3[m],result1[n],result2[n];
char z[n];
for(i=0;i<n;i++){
result1[i]=result2[i]=0;
scanf("%d %d %c",&x[i],&y[i],&z[i]);
}
for(i=0;i<m;i++){
scanf("%d %d %d",&a1[i],&a2[i],&a3[i]);
}
for(i=0;i<m;i++){
flag=0;
q=0,w=0,e=0,r=0;
for(j=0;j<n;j++){
if(z[j]=='A'){
result1[q]=a1[i]+a2[i]*x[j]+a3[i]*y[j];
q++;
}else{
result2[w]=a1[i]+a2[i]*x[j]+a3[i]*y[j];
w++;
}
}
e=q;r=w;
if(result1[0]>0&&result2[0]<0){
for(q=0;q<e;q++){
if(result1[q]<0){
flag=1;
}
}
for(w=0;w<r;w++){
if(result2[w]>0){
flag=1;
}
}
}else if(result1[0]<0&&result2[0]>0){
for(q=0;q<e;q++){
if(result1[q]>0){
flag=1;
}
}
for(w=0;w<r;w++){
if(result2[w]<0){
flag=1;
}
}
}else{
flag=1;
}
if(flag==0){
printf("Yes");
printf("\n");
}else{
printf("No");
printf("\n");
}
}
return 0;
}