제출 #815630

#제출 시각아이디문제언어결과실행 시간메모리
815630Ozy원 고르기 (APIO18_circle_selection)C++17
7 / 100
79 ms1752 KiB
#include <bits/stdc++.h> using namespace std; #define lli long long int #define debug(a) cout << #a << " = " << a << endl #define debugsl(a) cout << #a << " = " << a << ", " #define rep(i,a,b) for(int i = (a); i <= (b); i++) #define repa(i,a,b) for(int i = (a); i >= (b); i--) #define pll pair<lli,lli> #define MAX 5000 //para el vector de orden #define id second struct x { lli x; lli y; lli r; }; lli n; lli res[MAX+2],vis[MAX+2]; x circulo[MAX+2]; vector<pll> orden; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n; rep(i,1,n) { cin >> circulo[i].x >> circulo[i].y >> circulo[i].r; orden.push_back({-circulo[i].r, i}); } sort(orden.begin(), orden.end()); for (auto yo : orden) { for(auto otro : orden) { if (vis[otro.id]) continue; if (otro.id == yo.id) { res[yo.id] = yo.id; break; } lli a = circulo[yo.id].x - circulo[otro.id].x; lli b = circulo[yo.id].y - circulo[otro.id].y; a *= a; b *= b; lli c = circulo[yo.id].r + circulo[otro.id].r; c *= c; if (c >= (a+b)) { res[yo.id] = otro.id; vis[yo.id] = 1; break; } } } rep(i,1,n) cout << res[i] << ' '; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...