답안 #106524

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
106524 2019-04-19T02:47:41 Z username 원 고르기 (APIO18_circle_selection) C++14
49 / 100
3000 ms 287072 KB
#pragma GCC optimize("O3")
#include<stdint.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#include<ext/rope>
using namespace __gnu_pbds;
using namespace __gnu_cxx;
#define VIS(it,con) for(auto it=con.begin();it!=con.end();++it)
#define pob pop_back
#define pf push_front
#define pof pop_front
#define MIN(x,y) (x=min(x,(y)))
#define MAX(x,y) (x=max(x,(y)))
#define mid (l+r>>1)
#define lch (idx*2+1)
#define rch (idx*2+2)
/*****************************************************************************/
#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=3e9;
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:48:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 2688 KB Output is correct
2 Correct 4 ms 2688 KB Output is correct
3 Correct 5 ms 2688 KB Output is correct
4 Correct 5 ms 2688 KB Output is correct
5 Correct 5 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 4 ms 2688 KB Output is correct
10 Correct 5 ms 2816 KB Output is correct
11 Correct 5 ms 2816 KB Output is correct
12 Correct 5 ms 2816 KB Output is correct
13 Correct 5 ms 2816 KB Output is correct
14 Correct 4 ms 2816 KB Output is correct
15 Correct 5 ms 2816 KB Output is correct
16 Correct 5 ms 2816 KB Output is correct
17 Correct 4 ms 2688 KB Output is correct
18 Correct 5 ms 2816 KB Output is correct
19 Correct 7 ms 3072 KB Output is correct
20 Correct 8 ms 3072 KB Output is correct
21 Correct 7 ms 2944 KB Output is correct
22 Correct 30 ms 6924 KB Output is correct
23 Correct 34 ms 6928 KB Output is correct
24 Correct 40 ms 7056 KB Output is correct
25 Correct 40 ms 7148 KB Output is correct
26 Correct 36 ms 7048 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 210 ms 17036 KB Output is correct
2 Correct 216 ms 18068 KB Output is correct
3 Correct 213 ms 18784 KB Output is correct
4 Correct 317 ms 16872 KB Output is correct
5 Correct 285 ms 21948 KB Output is correct
6 Correct 1406 ms 70764 KB Output is correct
7 Correct 388 ms 25224 KB Output is correct
8 Correct 617 ms 32680 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 2688 KB Output is correct
2 Correct 1532 ms 84780 KB Output is correct
3 Execution timed out 3050 ms 287072 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3045 ms 285996 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 2688 KB Output is correct
2 Correct 4 ms 2688 KB Output is correct
3 Correct 5 ms 2688 KB Output is correct
4 Correct 5 ms 2688 KB Output is correct
5 Correct 5 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 4 ms 2688 KB Output is correct
10 Correct 5 ms 2816 KB Output is correct
11 Correct 5 ms 2816 KB Output is correct
12 Correct 5 ms 2816 KB Output is correct
13 Correct 5 ms 2816 KB Output is correct
14 Correct 4 ms 2816 KB Output is correct
15 Correct 5 ms 2816 KB Output is correct
16 Correct 5 ms 2816 KB Output is correct
17 Correct 4 ms 2688 KB Output is correct
18 Correct 5 ms 2816 KB Output is correct
19 Correct 7 ms 3072 KB Output is correct
20 Correct 8 ms 3072 KB Output is correct
21 Correct 7 ms 2944 KB Output is correct
22 Correct 30 ms 6924 KB Output is correct
23 Correct 34 ms 6928 KB Output is correct
24 Correct 40 ms 7056 KB Output is correct
25 Correct 40 ms 7148 KB Output is correct
26 Correct 36 ms 7048 KB Output is correct
27 Correct 9 ms 3312 KB Output is correct
28 Correct 17 ms 3328 KB Output is correct
29 Correct 14 ms 3328 KB Output is correct
30 Correct 116 ms 11324 KB Output is correct
31 Correct 104 ms 11320 KB Output is correct
32 Correct 130 ms 11376 KB Output is correct
33 Correct 74 ms 8328 KB Output is correct
34 Correct 63 ms 8304 KB Output is correct
35 Correct 79 ms 7596 KB Output is correct
36 Correct 1505 ms 86124 KB Output is correct
37 Correct 1400 ms 85772 KB Output is correct
38 Correct 1511 ms 85628 KB Output is correct
39 Correct 640 ms 28288 KB Output is correct
40 Correct 649 ms 28124 KB Output is correct
41 Correct 607 ms 28300 KB Output is correct
42 Correct 240 ms 16228 KB Output is correct
43 Correct 1646 ms 141848 KB Output is correct
44 Correct 1782 ms 141808 KB Output is correct
45 Correct 1714 ms 141720 KB Output is correct
46 Correct 1722 ms 141712 KB Output is correct
47 Correct 1763 ms 142064 KB Output is correct
48 Correct 1693 ms 141872 KB Output is correct
49 Correct 1863 ms 142068 KB Output is correct
50 Correct 1746 ms 141896 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 2688 KB Output is correct
2 Correct 4 ms 2688 KB Output is correct
3 Correct 5 ms 2688 KB Output is correct
4 Correct 5 ms 2688 KB Output is correct
5 Correct 5 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 4 ms 2688 KB Output is correct
10 Correct 5 ms 2816 KB Output is correct
11 Correct 5 ms 2816 KB Output is correct
12 Correct 5 ms 2816 KB Output is correct
13 Correct 5 ms 2816 KB Output is correct
14 Correct 4 ms 2816 KB Output is correct
15 Correct 5 ms 2816 KB Output is correct
16 Correct 5 ms 2816 KB Output is correct
17 Correct 4 ms 2688 KB Output is correct
18 Correct 5 ms 2816 KB Output is correct
19 Correct 7 ms 3072 KB Output is correct
20 Correct 8 ms 3072 KB Output is correct
21 Correct 7 ms 2944 KB Output is correct
22 Correct 30 ms 6924 KB Output is correct
23 Correct 34 ms 6928 KB Output is correct
24 Correct 40 ms 7056 KB Output is correct
25 Correct 40 ms 7148 KB Output is correct
26 Correct 36 ms 7048 KB Output is correct
27 Correct 210 ms 17036 KB Output is correct
28 Correct 216 ms 18068 KB Output is correct
29 Correct 213 ms 18784 KB Output is correct
30 Correct 317 ms 16872 KB Output is correct
31 Correct 285 ms 21948 KB Output is correct
32 Correct 1406 ms 70764 KB Output is correct
33 Correct 388 ms 25224 KB Output is correct
34 Correct 617 ms 32680 KB Output is correct
35 Correct 5 ms 2688 KB Output is correct
36 Correct 1532 ms 84780 KB Output is correct
37 Execution timed out 3050 ms 287072 KB Time limit exceeded
38 Halted 0 ms 0 KB -