답안 #106512

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
106512 2019-04-19T02:20:19 Z username 원 고르기 (APIO18_circle_selection) C++14
49 / 100
3000 ms 287048 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){
			for(auto it=mp[x*bl+y].begin();it!=mp[x*bl+y].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 3 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 4 ms 2688 KB Output is correct
11 Correct 6 ms 2736 KB Output is correct
12 Correct 6 ms 2816 KB Output is correct
13 Correct 4 ms 2816 KB Output is correct
14 Correct 5 ms 2816 KB Output is correct
15 Correct 4 ms 2944 KB Output is correct
16 Correct 5 ms 2816 KB Output is correct
17 Correct 5 ms 2816 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 10 ms 3072 KB Output is correct
22 Correct 41 ms 6916 KB Output is correct
23 Correct 45 ms 6920 KB Output is correct
24 Correct 44 ms 6928 KB Output is correct
25 Correct 32 ms 7056 KB Output is correct
26 Correct 41 ms 7048 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 197 ms 16924 KB Output is correct
2 Correct 238 ms 17948 KB Output is correct
3 Correct 199 ms 19036 KB Output is correct
4 Correct 178 ms 16968 KB Output is correct
5 Correct 292 ms 21924 KB Output is correct
6 Correct 1562 ms 70588 KB Output is correct
7 Correct 400 ms 25352 KB Output is correct
8 Correct 617 ms 32676 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 2688 KB Output is correct
2 Correct 1555 ms 84836 KB Output is correct
3 Execution timed out 3060 ms 287048 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3058 ms 286004 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 3 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 4 ms 2688 KB Output is correct
11 Correct 6 ms 2736 KB Output is correct
12 Correct 6 ms 2816 KB Output is correct
13 Correct 4 ms 2816 KB Output is correct
14 Correct 5 ms 2816 KB Output is correct
15 Correct 4 ms 2944 KB Output is correct
16 Correct 5 ms 2816 KB Output is correct
17 Correct 5 ms 2816 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 10 ms 3072 KB Output is correct
22 Correct 41 ms 6916 KB Output is correct
23 Correct 45 ms 6920 KB Output is correct
24 Correct 44 ms 6928 KB Output is correct
25 Correct 32 ms 7056 KB Output is correct
26 Correct 41 ms 7048 KB Output is correct
27 Correct 12 ms 3292 KB Output is correct
28 Correct 10 ms 3328 KB Output is correct
29 Correct 15 ms 3328 KB Output is correct
30 Correct 131 ms 11196 KB Output is correct
31 Correct 83 ms 11192 KB Output is correct
32 Correct 86 ms 11324 KB Output is correct
33 Correct 82 ms 8300 KB Output is correct
34 Correct 102 ms 8300 KB Output is correct
35 Correct 81 ms 7656 KB Output is correct
36 Correct 1432 ms 86100 KB Output is correct
37 Correct 1431 ms 85840 KB Output is correct
38 Correct 1561 ms 85600 KB Output is correct
39 Correct 830 ms 28252 KB Output is correct
40 Correct 826 ms 28416 KB Output is correct
41 Correct 823 ms 28428 KB Output is correct
42 Correct 295 ms 16004 KB Output is correct
43 Correct 1593 ms 141732 KB Output is correct
44 Correct 1713 ms 141824 KB Output is correct
45 Correct 1803 ms 141700 KB Output is correct
46 Correct 1711 ms 141896 KB Output is correct
47 Correct 1746 ms 142024 KB Output is correct
48 Correct 1689 ms 141892 KB Output is correct
49 Correct 1809 ms 142056 KB Output is correct
50 Correct 1714 ms 141844 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 3 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 4 ms 2688 KB Output is correct
11 Correct 6 ms 2736 KB Output is correct
12 Correct 6 ms 2816 KB Output is correct
13 Correct 4 ms 2816 KB Output is correct
14 Correct 5 ms 2816 KB Output is correct
15 Correct 4 ms 2944 KB Output is correct
16 Correct 5 ms 2816 KB Output is correct
17 Correct 5 ms 2816 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 10 ms 3072 KB Output is correct
22 Correct 41 ms 6916 KB Output is correct
23 Correct 45 ms 6920 KB Output is correct
24 Correct 44 ms 6928 KB Output is correct
25 Correct 32 ms 7056 KB Output is correct
26 Correct 41 ms 7048 KB Output is correct
27 Correct 197 ms 16924 KB Output is correct
28 Correct 238 ms 17948 KB Output is correct
29 Correct 199 ms 19036 KB Output is correct
30 Correct 178 ms 16968 KB Output is correct
31 Correct 292 ms 21924 KB Output is correct
32 Correct 1562 ms 70588 KB Output is correct
33 Correct 400 ms 25352 KB Output is correct
34 Correct 617 ms 32676 KB Output is correct
35 Correct 5 ms 2688 KB Output is correct
36 Correct 1555 ms 84836 KB Output is correct
37 Execution timed out 3060 ms 287048 KB Time limit exceeded
38 Halted 0 ms 0 KB -