# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1095582 | 2024-10-02T15:10:02 Z | ShadowShark | 원 고르기 (APIO18_circle_selection) | C++17 | 2 ms | 604 KB |
#include <bits/stdc++.h> using namespace std; const int maxN = 3e5 + 5; struct circle { long long x, y, r, id; bool operator < (const circle& rhs) const { if (r != rhs.r) return r > rhs.r; return id < rhs.id; } } C[maxN]; int ans[maxN]; bool inter(circle& A, circle& B) { return (A.x - B.x) * (A.x - B.x) + (A.y - B.y) * (A.y - B.y) <= (A.r + B.r) * (A.r + B.r); } vector<int> tmp; map<pair<long long, long long>, vector<int>> save; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); freopen("circle.inp", "r", stdin); freopen("circle.out", "w", stdout); int n; cin >> n; for (int i = 1; i <= n; i++) { cin >> C[i].x >> C[i].y >> C[i].r; C[i].id = i; } sort(C + 1, C + n + 1); for (int i = 1; i <= n; i++) { C[i].x += 1e9; C[i].y += 1e9; save[{C[i].x / C[i].r, C[i].y / C[i].r}].push_back(i); } for (int i = 1; i <= n; i++) { circle& curr = C[i]; if (ans[curr.id]) continue; long long X = curr.x / curr.r, Y = curr.y / curr.r; for (long long x = X - 2; x <= X + 2; x++) for (long long y = Y - 2; y <= Y + 2; y++) { if (save[{x, y}].size() == 0) continue; for (auto it: save[{x, y}]) if (!ans[C[it].id] && inter(C[it], curr)) ans[C[it].id] = curr.id; } } for (int i = 1; i <= n; i++) cout << ans[i] << ' '; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 2 ms | 604 KB | Execution killed with signal 8 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 2 ms | 604 KB | Execution killed with signal 8 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 2 ms | 600 KB | Execution killed with signal 8 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 2 ms | 604 KB | Execution killed with signal 8 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 2 ms | 604 KB | Execution killed with signal 8 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 2 ms | 604 KB | Execution killed with signal 8 |
2 | Halted | 0 ms | 0 KB | - |