# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
135008 | 2019-07-23T14:13:08 Z | Lawliet | 원 고르기 (APIO18_circle_selection) | C++14 | 1304 ms | 109476 KB |
#include <bits/stdc++.h> #define MAX 300010 #define R first.first #define I first.second #define X second.first #define Y second.second using namespace std; typedef long long int lli; typedef pair<lli,lli> pii; typedef pair<pii,pii> circle; int n; int n1, n2, n3; int x[MAX]; int r[MAX]; int removed[MAX]; vector<circle> v; set<pii> points; set<pii>::iterator it; int main() { scanf("%d",&n); memset(removed , -1 , sizeof(removed)); for(int g = 1 ; g <= n ; g++) { scanf("%d %d %d",&n1,&n2,&n3); circle k; k = {{-n3 , g} , {n1 , n2}}; points.insert({n1 - n3 , g}); points.insert({n1 + n3 , g}); x[g] = n1; r[g] = n3; v.push_back( k ); } sort(v.begin() , v.end()); for(int g = 0 ; g < n ; g++) { if(removed[ v[g].I ] != -1) continue; it = points.lower_bound(make_pair(x[v[g].I] - r[v[g].I] , -1)); while(!points.empty()) { if(x[v[g].I] + r[v[g].I] < it->first) break; int cur = it->second; points.erase({x[cur] - r[cur] , cur}); points.erase({x[cur] + r[cur] , cur}); removed[cur] = v[g].I; it = points.lower_bound(make_pair(x[v[g].I] - r[v[g].I] , -1)); } } for(int g = 1 ; g <= n ; g++) printf("%d ",removed[g]); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 1528 KB | Output is correct |
2 | Correct | 3 ms | 1528 KB | Output is correct |
3 | Incorrect | 3 ms | 1528 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1298 ms | 54204 KB | Output is correct |
2 | Runtime error | 1304 ms | 109476 KB | Execution killed with signal 11 (could be triggered by violating memory limits) |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 5 ms | 2808 KB | Execution killed with signal 11 (could be triggered by violating memory limits) |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 706 ms | 103856 KB | Execution killed with signal 11 (could be triggered by violating memory limits) |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 1528 KB | Output is correct |
2 | Correct | 3 ms | 1528 KB | Output is correct |
3 | Incorrect | 3 ms | 1528 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 1528 KB | Output is correct |
2 | Correct | 3 ms | 1528 KB | Output is correct |
3 | Incorrect | 3 ms | 1528 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |