个人觉得比较简单的做法。
(碰巧这周C++作业留了这道题目顺便分享一下自己的解法)
#include<iostream>
using namespace std;
struct
{
int x;
int y;
char type;
}p[105];
int main()
{
int m, n, a, b, c;
cin >> n >> m;
for (int i = 0;i < n;i++)
cin >> p[i].x >> p[i].y >> p[i].type;
while (m--)
{
cin >> a >> b >> c;
int i, s[2] = { 0 };
for (i = 0;i < n;i++)
{
int res = a + b * p[i].x + c * p[i].y > 0 ? 1 : -1;
if (0 == s[p[i].type - 'A'] + res)
{
cout << "No" << endl;
break;
}
else
s[p[i].type - 'A'] = res;
}
if (i == n)
cout << "Yes" << endl;
}
return 0;
}