# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
261125 | 2020-08-11T12:12:16 Z | onjo0127 | None (JOI12_constellation) | C++11 | 85 ms | 5232 KB |
#include <bits/stdc++.h> #define X first #define Y second #define sz(V) ((int)(V).size()) using namespace std; using ll = long long; using pii = pair<int, int>; const int MOD = 1e9 + 7; struct star { int X, Y, ty; } A[100009]; int CCW(star A, star B, star C) { ll tmp = 1LL*A.X*B.Y + 1LL*B.X*C.Y + 1LL*C.X*A.Y - 1LL*A.Y*B.X - 1LL*B.Y*C.X - 1LL*C.Y*A.X; if(tmp < 0) return -1; if(tmp == 0) return 0; if(tmp > 0) return +1; } int get(int x) { int ans = 1; for(int i=0; i<x; i++) ans *= 2, ans %= MOD; return ans; } int main() { int N, tot = 0; scanf("%d", &N); for(int i=1; i<=N; i++) { scanf("%d%d%d", &A[i].X, &A[i].Y, &A[i].ty); if(A[i].ty == 0) ++tot; } sort(A+1, A+N+1, [&](star PP, star QQ) { if(PP.X == QQ.X) return PP.Y < QQ.Y; return PP.X < QQ.X; }); vector<star> H; sort(A+2, A+N+1, [&](star PP, star QQ) { return CCW(A[1], PP, QQ) > 0; }); H.push_back(A[1]); H.push_back(A[2]); for(int i=3; i<=N; i++) { while(sz(H) >= 2 && CCW(H[sz(H) - 2], H[sz(H) - 1], A[i]) < 0) H.pop_back(); H.push_back(A[i]); } int hto = 0; for(auto& it: H) if(it.ty == 0) ++hto; int p = -1, c = -1, cnt = 0, ch = 0; long long ans = 0; for(int i=0; i<H.size(); i++) if(H[i].ty) { p = i; c = H[i].ty; break; } if(p == -1) { ans = hto * (hto - 1) + 2; ans %= MOD; ans *= get(tot - hto); printf("%lld", ans % MOD); return 0; } long long ans2 = 1; for(int i=p+1; i<=p+sz(H); i++) { int it = i % sz(H); if(H[it].ty) { if(H[it].ty == c) ans += cnt * (cnt + 1) / 2, ans %= MOD; else ++ch, ans2 *= cnt + 1; c = H[it].ty; cnt = 0; } else ++cnt; } if(ch == 0) return !printf("%lld", (ans + 1) * get(tot - hto) % MOD); if(ch > 2) return !printf("0"); ans2 %= MOD; printf("%d", ans2 * get(tot - hto) % MOD); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 256 KB | Output is correct |
2 | Incorrect | 0 ms | 256 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Correct | 1 ms | 384 KB | Output is correct |
3 | Correct | 1 ms | 384 KB | Output is correct |
4 | Incorrect | 1 ms | 384 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Correct | 1 ms | 384 KB | Output is correct |
3 | Correct | 1 ms | 384 KB | Output is correct |
4 | Incorrect | 1 ms | 384 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Correct | 1 ms | 384 KB | Output is correct |
3 | Correct | 1 ms | 384 KB | Output is correct |
4 | Incorrect | 1 ms | 384 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Correct | 1 ms | 384 KB | Output is correct |
3 | Correct | 1 ms | 384 KB | Output is correct |
4 | Incorrect | 1 ms | 384 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Incorrect | 5 ms | 648 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 384 KB | Output is correct |
2 | Correct | 85 ms | 3576 KB | Output is correct |
3 | Incorrect | 1 ms | 512 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Correct | 79 ms | 3620 KB | Output is correct |
3 | Incorrect | 1 ms | 384 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 384 KB | Output is correct |
2 | Correct | 79 ms | 3584 KB | Output is correct |
3 | Incorrect | 85 ms | 5232 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 384 KB | Output is correct |
2 | Correct | 73 ms | 3576 KB | Output is correct |
3 | Incorrect | 79 ms | 3576 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |