답안 #106521

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
106521 2019-04-19T02:40:23 Z username 원 고르기 (APIO18_circle_selection) C++14
49 / 100
3000 ms 289148 KB
#pragma GCC optimize("O3")
#include<bits/stdc++.h>
#define int int_fast64_t
using namespace std;
typedef pair<int,int> pii;
typedef vector<int> VI;
#define REP(i,j,k) for(register int i=(j);i<(k);++i)
#define RREP(i,j,k) for(register int i=(j)-1;i>=(k);--i)
#define ALL(a) a.begin(),a.end()
#define MST(a,v) memset(a,(v),sizeof a)
#define pb push_back
#define F first
#define S second
#define endl '\n'
//																#define __debug
#ifdef __debug
	#define IOS (void)0
	#define de(...) cerr<<__VA_ARGS__
	#define ar(a,s,t) {REP(__i,s,t)de(a[__i]<<' ');de(endl);}
#else
	#define IOS cin.tie(0),cout.tie(0),ios_base::sync_with_stdio(false)
	#define de(...) (void)0
	#define ar(...) (void)0
#endif
/***********************************default***********************************/
#define f2(x) ((x)*(x))
const int maxn=3e5+9,inf=1ll<<60,bl=2e9+3;
struct C{int x,y,r,id;}a[maxn];
int n,rmv[maxn],res[maxn];
unordered_map<int,vector<int>>mp;
 
main(){
	IOS;
	cin>>n;
	REP(i,0,n)cin>>a[i].x>>a[i].y>>a[i].r,a[i].id=i;
	sort(a,a+n,[](C x,C y){return x.r==y.r?x.id<y.id:x.r>y.r;});
	MST(rmv,0);
	int k=inf;
	REP(i,0,n){
		if(rmv[i])continue;
		if(2*a[i].r<k){
			k=a[i].r;
			mp.clear();
			REP(j,0,n){
				if(!rmv[j]){
					mp[a[j].x/k*bl+a[j].y/k].pb(j);
				}
			}
		}
		REP(x,a[i].x/k-2,a[i].x/k+3)REP(y,a[i].y/k-2,a[i].y/k+3){
			auto end=mp[x*bl+y].end();
			for(auto it=mp[x*bl+y].begin();it!=end;++it){
				if(rmv[*it])continue;
				C c=a[*it];
				if(f2(a[i].x-c.x)+f2(a[i].y-c.y)<=f2(a[i].r+c.r)){
					res[c.id]=a[i].id;
					rmv[*it]=1;
//					mp[x*bl+y].erase(it++);
				}
			}
		}
	}
	REP(i,0,n)cout<<res[i]+1<<" ";
}

Compilation message

circle_selection.cpp:32:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 2688 KB Output is correct
2 Correct 4 ms 2688 KB Output is correct
3 Correct 4 ms 2688 KB Output is correct
4 Correct 4 ms 2688 KB Output is correct
5 Correct 4 ms 2688 KB Output is correct
6 Correct 4 ms 2688 KB Output is correct
7 Correct 4 ms 2688 KB Output is correct
8 Correct 4 ms 2688 KB Output is correct
9 Correct 3 ms 2688 KB Output is correct
10 Correct 5 ms 2688 KB Output is correct
11 Correct 5 ms 2816 KB Output is correct
12 Correct 5 ms 2816 KB Output is correct
13 Correct 4 ms 2816 KB Output is correct
14 Correct 6 ms 2816 KB Output is correct
15 Correct 5 ms 2816 KB Output is correct
16 Correct 4 ms 2688 KB Output is correct
17 Correct 6 ms 2816 KB Output is correct
18 Correct 5 ms 2688 KB Output is correct
19 Correct 7 ms 3072 KB Output is correct
20 Correct 6 ms 3072 KB Output is correct
21 Correct 7 ms 2944 KB Output is correct
22 Correct 33 ms 7000 KB Output is correct
23 Correct 37 ms 7048 KB Output is correct
24 Correct 33 ms 7176 KB Output is correct
25 Correct 38 ms 7048 KB Output is correct
26 Correct 38 ms 7048 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 174 ms 16872 KB Output is correct
2 Correct 211 ms 18540 KB Output is correct
3 Correct 258 ms 18912 KB Output is correct
4 Correct 170 ms 16848 KB Output is correct
5 Correct 304 ms 21800 KB Output is correct
6 Correct 1568 ms 70864 KB Output is correct
7 Correct 391 ms 25220 KB Output is correct
8 Correct 666 ms 30608 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 2688 KB Output is correct
2 Correct 1463 ms 84808 KB Output is correct
3 Execution timed out 3053 ms 287116 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3052 ms 289148 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 2688 KB Output is correct
2 Correct 4 ms 2688 KB Output is correct
3 Correct 4 ms 2688 KB Output is correct
4 Correct 4 ms 2688 KB Output is correct
5 Correct 4 ms 2688 KB Output is correct
6 Correct 4 ms 2688 KB Output is correct
7 Correct 4 ms 2688 KB Output is correct
8 Correct 4 ms 2688 KB Output is correct
9 Correct 3 ms 2688 KB Output is correct
10 Correct 5 ms 2688 KB Output is correct
11 Correct 5 ms 2816 KB Output is correct
12 Correct 5 ms 2816 KB Output is correct
13 Correct 4 ms 2816 KB Output is correct
14 Correct 6 ms 2816 KB Output is correct
15 Correct 5 ms 2816 KB Output is correct
16 Correct 4 ms 2688 KB Output is correct
17 Correct 6 ms 2816 KB Output is correct
18 Correct 5 ms 2688 KB Output is correct
19 Correct 7 ms 3072 KB Output is correct
20 Correct 6 ms 3072 KB Output is correct
21 Correct 7 ms 2944 KB Output is correct
22 Correct 33 ms 7000 KB Output is correct
23 Correct 37 ms 7048 KB Output is correct
24 Correct 33 ms 7176 KB Output is correct
25 Correct 38 ms 7048 KB Output is correct
26 Correct 38 ms 7048 KB Output is correct
27 Correct 9 ms 3312 KB Output is correct
28 Correct 9 ms 3328 KB Output is correct
29 Correct 14 ms 3328 KB Output is correct
30 Correct 88 ms 11192 KB Output is correct
31 Correct 95 ms 11328 KB Output is correct
32 Correct 84 ms 11324 KB Output is correct
33 Correct 107 ms 8172 KB Output is correct
34 Correct 66 ms 8304 KB Output is correct
35 Correct 78 ms 7656 KB Output is correct
36 Correct 1639 ms 86352 KB Output is correct
37 Correct 1523 ms 85904 KB Output is correct
38 Correct 1513 ms 85808 KB Output is correct
39 Correct 535 ms 28284 KB Output is correct
40 Correct 571 ms 28256 KB Output is correct
41 Correct 623 ms 28268 KB Output is correct
42 Correct 314 ms 16136 KB Output is correct
43 Correct 1666 ms 141580 KB Output is correct
44 Correct 1708 ms 141948 KB Output is correct
45 Correct 1818 ms 141612 KB Output is correct
46 Correct 1636 ms 141840 KB Output is correct
47 Correct 1712 ms 142096 KB Output is correct
48 Correct 1717 ms 141860 KB Output is correct
49 Correct 2467 ms 142152 KB Output is correct
50 Correct 1940 ms 141892 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 2688 KB Output is correct
2 Correct 4 ms 2688 KB Output is correct
3 Correct 4 ms 2688 KB Output is correct
4 Correct 4 ms 2688 KB Output is correct
5 Correct 4 ms 2688 KB Output is correct
6 Correct 4 ms 2688 KB Output is correct
7 Correct 4 ms 2688 KB Output is correct
8 Correct 4 ms 2688 KB Output is correct
9 Correct 3 ms 2688 KB Output is correct
10 Correct 5 ms 2688 KB Output is correct
11 Correct 5 ms 2816 KB Output is correct
12 Correct 5 ms 2816 KB Output is correct
13 Correct 4 ms 2816 KB Output is correct
14 Correct 6 ms 2816 KB Output is correct
15 Correct 5 ms 2816 KB Output is correct
16 Correct 4 ms 2688 KB Output is correct
17 Correct 6 ms 2816 KB Output is correct
18 Correct 5 ms 2688 KB Output is correct
19 Correct 7 ms 3072 KB Output is correct
20 Correct 6 ms 3072 KB Output is correct
21 Correct 7 ms 2944 KB Output is correct
22 Correct 33 ms 7000 KB Output is correct
23 Correct 37 ms 7048 KB Output is correct
24 Correct 33 ms 7176 KB Output is correct
25 Correct 38 ms 7048 KB Output is correct
26 Correct 38 ms 7048 KB Output is correct
27 Correct 174 ms 16872 KB Output is correct
28 Correct 211 ms 18540 KB Output is correct
29 Correct 258 ms 18912 KB Output is correct
30 Correct 170 ms 16848 KB Output is correct
31 Correct 304 ms 21800 KB Output is correct
32 Correct 1568 ms 70864 KB Output is correct
33 Correct 391 ms 25220 KB Output is correct
34 Correct 666 ms 30608 KB Output is correct
35 Correct 4 ms 2688 KB Output is correct
36 Correct 1463 ms 84808 KB Output is correct
37 Execution timed out 3053 ms 287116 KB Time limit exceeded
38 Halted 0 ms 0 KB -