Submission #106529

# Submission time Handle Problem Language Result Execution time Memory
106529 2019-04-19T02:58:44 Z username Circle selection (APIO18_circle_selection) C++14
49 / 100
3000 ms 312516 KB
#pragma GCC optimize("O3")
#include<bits/stdc++.h>
#define int int64_t//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,VI>mp;
list<int>ls;
 
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;});
	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);
				}
			}
		}
		int xx=a[i].x/k,yy=a[i].y/k;
		REP(x,xx-2,xx+3)REP(y,yy-2,yy+3){
			auto&tls=mp[x*bl+y];
			for(auto it=tls.begin();it!=tls.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;
				}
			}
		}
	}
	REP(i,0,n)cout<<res[i]+1<<" ";
}

Compilation message

circle_selection.cpp:33:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 3 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 3 ms 384 KB Output is correct
6 Correct 3 ms 384 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
11 Correct 2 ms 384 KB Output is correct
12 Correct 3 ms 572 KB Output is correct
13 Correct 3 ms 512 KB Output is correct
14 Correct 3 ms 512 KB Output is correct
15 Correct 2 ms 512 KB Output is correct
16 Correct 2 ms 384 KB Output is correct
17 Correct 3 ms 384 KB Output is correct
18 Correct 2 ms 384 KB Output is correct
19 Correct 6 ms 768 KB Output is correct
20 Correct 5 ms 768 KB Output is correct
21 Correct 6 ms 640 KB Output is correct
22 Correct 29 ms 4752 KB Output is correct
23 Correct 32 ms 4616 KB Output is correct
24 Correct 44 ms 4752 KB Output is correct
25 Correct 33 ms 4752 KB Output is correct
26 Correct 37 ms 4668 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 212 ms 16964 KB Output is correct
2 Correct 219 ms 17996 KB Output is correct
3 Correct 184 ms 18780 KB Output is correct
4 Correct 313 ms 16868 KB Output is correct
5 Correct 234 ms 21800 KB Output is correct
6 Correct 1259 ms 70692 KB Output is correct
7 Correct 442 ms 25196 KB Output is correct
8 Correct 525 ms 32572 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 1278 ms 83304 KB Output is correct
3 Execution timed out 3074 ms 286440 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 3078 ms 312516 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 3 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 3 ms 384 KB Output is correct
6 Correct 3 ms 384 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
11 Correct 2 ms 384 KB Output is correct
12 Correct 3 ms 572 KB Output is correct
13 Correct 3 ms 512 KB Output is correct
14 Correct 3 ms 512 KB Output is correct
15 Correct 2 ms 512 KB Output is correct
16 Correct 2 ms 384 KB Output is correct
17 Correct 3 ms 384 KB Output is correct
18 Correct 2 ms 384 KB Output is correct
19 Correct 6 ms 768 KB Output is correct
20 Correct 5 ms 768 KB Output is correct
21 Correct 6 ms 640 KB Output is correct
22 Correct 29 ms 4752 KB Output is correct
23 Correct 32 ms 4616 KB Output is correct
24 Correct 44 ms 4752 KB Output is correct
25 Correct 33 ms 4752 KB Output is correct
26 Correct 37 ms 4668 KB Output is correct
27 Correct 9 ms 1024 KB Output is correct
28 Correct 8 ms 1024 KB Output is correct
29 Correct 12 ms 1024 KB Output is correct
30 Correct 82 ms 9060 KB Output is correct
31 Correct 109 ms 9020 KB Output is correct
32 Correct 102 ms 9076 KB Output is correct
33 Correct 79 ms 6636 KB Output is correct
34 Correct 71 ms 6768 KB Output is correct
35 Correct 70 ms 6048 KB Output is correct
36 Correct 1463 ms 84468 KB Output is correct
37 Correct 1370 ms 84352 KB Output is correct
38 Correct 1408 ms 84096 KB Output is correct
39 Correct 453 ms 26624 KB Output is correct
40 Correct 464 ms 26716 KB Output is correct
41 Correct 509 ms 26748 KB Output is correct
42 Correct 179 ms 14600 KB Output is correct
43 Correct 1663 ms 140104 KB Output is correct
44 Correct 1763 ms 140380 KB Output is correct
45 Correct 1610 ms 140088 KB Output is correct
46 Correct 1611 ms 140360 KB Output is correct
47 Correct 1612 ms 140484 KB Output is correct
48 Correct 1695 ms 140212 KB Output is correct
49 Correct 1702 ms 140408 KB Output is correct
50 Correct 1644 ms 140232 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 3 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 3 ms 384 KB Output is correct
6 Correct 3 ms 384 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
11 Correct 2 ms 384 KB Output is correct
12 Correct 3 ms 572 KB Output is correct
13 Correct 3 ms 512 KB Output is correct
14 Correct 3 ms 512 KB Output is correct
15 Correct 2 ms 512 KB Output is correct
16 Correct 2 ms 384 KB Output is correct
17 Correct 3 ms 384 KB Output is correct
18 Correct 2 ms 384 KB Output is correct
19 Correct 6 ms 768 KB Output is correct
20 Correct 5 ms 768 KB Output is correct
21 Correct 6 ms 640 KB Output is correct
22 Correct 29 ms 4752 KB Output is correct
23 Correct 32 ms 4616 KB Output is correct
24 Correct 44 ms 4752 KB Output is correct
25 Correct 33 ms 4752 KB Output is correct
26 Correct 37 ms 4668 KB Output is correct
27 Correct 212 ms 16964 KB Output is correct
28 Correct 219 ms 17996 KB Output is correct
29 Correct 184 ms 18780 KB Output is correct
30 Correct 313 ms 16868 KB Output is correct
31 Correct 234 ms 21800 KB Output is correct
32 Correct 1259 ms 70692 KB Output is correct
33 Correct 442 ms 25196 KB Output is correct
34 Correct 525 ms 32572 KB Output is correct
35 Correct 2 ms 384 KB Output is correct
36 Correct 1278 ms 83304 KB Output is correct
37 Execution timed out 3074 ms 286440 KB Time limit exceeded
38 Halted 0 ms 0 KB -