题目 代码 自己写的,100分 #include <iostream> using namespace std; const int maxn = 1e5 + 10; struct point { int x, y; char type; }p[maxn]; struct canshu { int a0, a1, a2; }c[30]; int main() { int n, m; cin >> n >> m; for (int i = 0; i < n; i++) { cin >> p[i].x >> p[i].y >> p[i].type; } for (int i = 0; i < m; i++) { cin >> c[i].a0 >> c[i].a1 >> c[i].a2; } int a_num = 0, b_num = 0; for (int i = 0; i < n; i++) { if (p[i].type == 'A') a_num++; else b_num++; } for (int i = 0; i < m; i++) { int a0 = c[i].a0, a1 = c[i].a1, a2 = c[i].a2; char f; if (a0 + a1 * p[0].x + a2 * p[0].y > 0) { f = p[0].type; } else { if (p[0].type == 'A') { f = 'B'; } else f = 'A'; } int j; for (j = 0; j < n; j++) { if (a0 + a1 * p[j].x + a2 * p[j].y > 0 && p[j].type == f) { continue; } else if (a0 + a1 * p[j].x + a2 * p[j].y < 0 && p[j].type != f) continue; else break; } if (j == n) cout << "Yes" << endl; else cout << "No" << endl; } return 0; }