This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
using pii = pair<int, int>;
#define ff first
#define ss second
int ccw(pii a, pii b, pii c) {
b = {b.ff - a.ff, b.ss - a.ss}, c = {c.ff - a.ff, c.ss - a.ss};
long long t = 1ll * b.ff * c.ss - 1ll * b.ss * c.ff;
return (t > 0) - (t < 0);
}
int N, M, Q;
vector<pii> P[30005];
pii X, Y;
int main() {
ios_base::sync_with_stdio(0), cin.tie(0);
cin >> N >> M;
for (int i = 1; i <= N; ++i) {
int a, b, c; cin >> a >> b >> c;
P[c].emplace_back(a, b);
}
int d1, e1, d2, e2; cin >> d1 >> e1 >> d2 >> e2;
X = {d1, e1}, Y = {d2, e2};
cin >> Q;
while (Q--) {
int a, b; cin >> a >> b;
int cnt = 0;
for (auto i : P[a]) {
for (auto j : P[b]) {
if (ccw(i, j, X) != ccw(i, j, Y)) {
if (ccw(i, j, X) < 0) swap(X, Y);
if (ccw(X, Y, i) < 0) cnt++;
}
}
}
printf("%d\n", cnt);
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |