# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
443454 | 2021-07-10T14:09:14 Z | leinad2 | Fountain Parks (IOI21_parks) | C++17 | 2451 ms | 74904 KB |
#include "parks.h" #include<bits/stdc++.h> using namespace std; int par[400010], chk[400010], chk2[400010], A[400010][2], vis[400010]; int Find(int v){return v==par[v]?v:par[v]=Find(par[v]);} vector<pair<int, int> >v; int cnt; map<pair<int, int>, int>mp; vector<pair<int, int> >adj[400010]; vector<int>_u, _v, _a, _b; void dfs(int v) { for(int i=0;i<adj[v].size();i++) { int p=adj[v][i].first; if(!vis[p])vis[p]=1,dfs(p),_a[adj[v][i].second]=p; } } int construct_roads(vector<int>x, vector<int>y) { int n, i, j, k, a, b; n=x.size(); vector<pair<pair<int, int>, int> >V; for(i=0;i<n;i++) { V.push_back({{x[i], y[i]}, i}); } sort(V.begin(), V.end()); for(i=1;i<V.size();i++) { if(V[i].first.first==V[i-1].first.first&&V[i].first.second==V[i-1].first.second+2) { v.push_back({V[i].second, V[i-1].second}); } } for(i=0;i<n;i++) { swap(V[i].first.first, V[i].first.second); } sort(V.begin(), V.end()); for(i=1;i<V.size();i++) { if(V[i].first.first==V[i-1].first.first&&V[i].first.second==V[i-1].first.second+2) { v.push_back({V[i].second, V[i-1].second}); } } for(int rng=0;rng<5;rng++) { for(i=0;i<n;i++)par[i]=i; random_shuffle(v.begin(), v.end()); _u.clear();_v.clear();_a.clear();_b.clear();cnt=0;mp.clear();for(i=1;i<=2*n;i++)vis[i]=chk[i]=chk2[i]=0,adj[i].clear(); for(i=0;i<v.size();i++) { if(Find(v[i].first)!=Find(v[i].second)) { _u.push_back(v[i].first); _v.push_back(v[i].second); par[Find(v[i].first)]=Find(v[i].second); } } if(_u.size()!=n-1)return 0; vector<pair<int, int> >edge; _a.resize(n-1);_b.resize(n-1); for(i=0;i<_u.size();i++) { int a=_u[i], b=_v[i], q, w, e, r; if(x[a]==x[b]) { q=x[a]-1;e=x[a]+1; w=r=(y[a]+y[b])/2; } else { w=y[a]-1;r=y[a]+1; q=e=(x[a]+x[b])/2; } if(mp.find({q, w})==mp.end())mp[{q, w}]=++cnt,A[cnt][0]=q,A[cnt][1]=w; if(mp.find({e, r})==mp.end())mp[{e, r}]=++cnt,A[cnt][0]=e,A[cnt][1]=r; int x=mp[{q, w}];int y=mp[{e, r}]; edge.push_back({x, y}); } for(i=0;i++<cnt;)par[i]=i; for(i=0;i<edge.size();i++)par[Find(edge[i].first)]=Find(edge[i].second); for(i=0;i++<cnt;)chk[Find(i)]++; for(i=0;i<edge.size();i++)chk2[Find(edge[i].first)]++; for(i=0;i<edge.size();i++) { adj[edge[i].first].push_back({edge[i].second, i}); adj[edge[i].second].push_back({edge[i].first, i}); } bool flag=true; for(i=0;i++<cnt;) { if(chk[i]) { if(chk[i]<chk2[i]){flag=false;break;} else vis[i]=1,dfs(i); } } if(!flag)continue; for(i=0;i<_a.size();i++) { if(_a[i]==0)_a[i]=Find(edge[i].first); int a=_a[i]; _a[i]=A[a][0];_b[i]=A[a][1]; } build(_u, _v, _a, _b); return 1; } return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9804 KB | Output is correct |
2 | Correct | 6 ms | 9688 KB | Output is correct |
3 | Correct | 6 ms | 9676 KB | Output is correct |
4 | Correct | 6 ms | 9676 KB | Output is correct |
5 | Correct | 6 ms | 9676 KB | Output is correct |
6 | Correct | 6 ms | 9676 KB | Output is correct |
7 | Correct | 7 ms | 9676 KB | Output is correct |
8 | Correct | 6 ms | 9676 KB | Output is correct |
9 | Correct | 262 ms | 42252 KB | Output is correct |
10 | Correct | 25 ms | 12928 KB | Output is correct |
11 | Correct | 131 ms | 27140 KB | Output is correct |
12 | Correct | 36 ms | 14612 KB | Output is correct |
13 | Correct | 22 ms | 13204 KB | Output is correct |
14 | Correct | 8 ms | 9676 KB | Output is correct |
15 | Correct | 7 ms | 9808 KB | Output is correct |
16 | Correct | 256 ms | 42304 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9804 KB | Output is correct |
2 | Correct | 6 ms | 9688 KB | Output is correct |
3 | Correct | 6 ms | 9676 KB | Output is correct |
4 | Correct | 6 ms | 9676 KB | Output is correct |
5 | Correct | 6 ms | 9676 KB | Output is correct |
6 | Correct | 6 ms | 9676 KB | Output is correct |
7 | Correct | 7 ms | 9676 KB | Output is correct |
8 | Correct | 6 ms | 9676 KB | Output is correct |
9 | Correct | 262 ms | 42252 KB | Output is correct |
10 | Correct | 25 ms | 12928 KB | Output is correct |
11 | Correct | 131 ms | 27140 KB | Output is correct |
12 | Correct | 36 ms | 14612 KB | Output is correct |
13 | Correct | 22 ms | 13204 KB | Output is correct |
14 | Correct | 8 ms | 9676 KB | Output is correct |
15 | Correct | 7 ms | 9808 KB | Output is correct |
16 | Correct | 256 ms | 42304 KB | Output is correct |
17 | Correct | 6 ms | 9676 KB | Output is correct |
18 | Correct | 6 ms | 9676 KB | Output is correct |
19 | Correct | 7 ms | 9688 KB | Output is correct |
20 | Correct | 6 ms | 9676 KB | Output is correct |
21 | Correct | 8 ms | 9676 KB | Output is correct |
22 | Correct | 6 ms | 9676 KB | Output is correct |
23 | Correct | 658 ms | 59948 KB | Output is correct |
24 | Correct | 6 ms | 9676 KB | Output is correct |
25 | Correct | 8 ms | 9932 KB | Output is correct |
26 | Correct | 8 ms | 9932 KB | Output is correct |
27 | Correct | 8 ms | 9976 KB | Output is correct |
28 | Correct | 224 ms | 29812 KB | Output is correct |
29 | Correct | 394 ms | 39720 KB | Output is correct |
30 | Correct | 515 ms | 49596 KB | Output is correct |
31 | Correct | 696 ms | 59752 KB | Output is correct |
32 | Correct | 7 ms | 9676 KB | Output is correct |
33 | Correct | 7 ms | 9676 KB | Output is correct |
34 | Correct | 6 ms | 9676 KB | Output is correct |
35 | Correct | 7 ms | 9676 KB | Output is correct |
36 | Correct | 7 ms | 9676 KB | Output is correct |
37 | Correct | 8 ms | 9676 KB | Output is correct |
38 | Correct | 7 ms | 9676 KB | Output is correct |
39 | Correct | 7 ms | 9688 KB | Output is correct |
40 | Correct | 6 ms | 9676 KB | Output is correct |
41 | Correct | 7 ms | 9676 KB | Output is correct |
42 | Correct | 7 ms | 9676 KB | Output is correct |
43 | Correct | 7 ms | 9804 KB | Output is correct |
44 | Correct | 8 ms | 9980 KB | Output is correct |
45 | Correct | 300 ms | 35692 KB | Output is correct |
46 | Correct | 434 ms | 47356 KB | Output is correct |
47 | Correct | 434 ms | 47416 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9804 KB | Output is correct |
2 | Correct | 6 ms | 9688 KB | Output is correct |
3 | Correct | 6 ms | 9676 KB | Output is correct |
4 | Correct | 6 ms | 9676 KB | Output is correct |
5 | Correct | 6 ms | 9676 KB | Output is correct |
6 | Correct | 6 ms | 9676 KB | Output is correct |
7 | Correct | 7 ms | 9676 KB | Output is correct |
8 | Correct | 6 ms | 9676 KB | Output is correct |
9 | Correct | 262 ms | 42252 KB | Output is correct |
10 | Correct | 25 ms | 12928 KB | Output is correct |
11 | Correct | 131 ms | 27140 KB | Output is correct |
12 | Correct | 36 ms | 14612 KB | Output is correct |
13 | Correct | 22 ms | 13204 KB | Output is correct |
14 | Correct | 8 ms | 9676 KB | Output is correct |
15 | Correct | 7 ms | 9808 KB | Output is correct |
16 | Correct | 256 ms | 42304 KB | Output is correct |
17 | Correct | 6 ms | 9676 KB | Output is correct |
18 | Correct | 6 ms | 9676 KB | Output is correct |
19 | Correct | 7 ms | 9688 KB | Output is correct |
20 | Correct | 6 ms | 9676 KB | Output is correct |
21 | Correct | 8 ms | 9676 KB | Output is correct |
22 | Correct | 6 ms | 9676 KB | Output is correct |
23 | Correct | 658 ms | 59948 KB | Output is correct |
24 | Correct | 6 ms | 9676 KB | Output is correct |
25 | Correct | 8 ms | 9932 KB | Output is correct |
26 | Correct | 8 ms | 9932 KB | Output is correct |
27 | Correct | 8 ms | 9976 KB | Output is correct |
28 | Correct | 224 ms | 29812 KB | Output is correct |
29 | Correct | 394 ms | 39720 KB | Output is correct |
30 | Correct | 515 ms | 49596 KB | Output is correct |
31 | Correct | 696 ms | 59752 KB | Output is correct |
32 | Correct | 7 ms | 9676 KB | Output is correct |
33 | Correct | 7 ms | 9676 KB | Output is correct |
34 | Correct | 6 ms | 9676 KB | Output is correct |
35 | Correct | 7 ms | 9676 KB | Output is correct |
36 | Correct | 7 ms | 9676 KB | Output is correct |
37 | Correct | 8 ms | 9676 KB | Output is correct |
38 | Correct | 7 ms | 9676 KB | Output is correct |
39 | Correct | 7 ms | 9688 KB | Output is correct |
40 | Correct | 6 ms | 9676 KB | Output is correct |
41 | Correct | 7 ms | 9676 KB | Output is correct |
42 | Correct | 7 ms | 9676 KB | Output is correct |
43 | Correct | 7 ms | 9804 KB | Output is correct |
44 | Correct | 8 ms | 9980 KB | Output is correct |
45 | Correct | 300 ms | 35692 KB | Output is correct |
46 | Correct | 434 ms | 47356 KB | Output is correct |
47 | Correct | 434 ms | 47416 KB | Output is correct |
48 | Correct | 7 ms | 9668 KB | Output is correct |
49 | Correct | 7 ms | 9676 KB | Output is correct |
50 | Correct | 6 ms | 9676 KB | Output is correct |
51 | Correct | 6 ms | 9676 KB | Output is correct |
52 | Correct | 7 ms | 9676 KB | Output is correct |
53 | Correct | 6 ms | 9632 KB | Output is correct |
54 | Correct | 6 ms | 9676 KB | Output is correct |
55 | Incorrect | 2451 ms | 55464 KB | Solution announced impossible, but it is possible. |
56 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9804 KB | Output is correct |
2 | Correct | 6 ms | 9688 KB | Output is correct |
3 | Correct | 6 ms | 9676 KB | Output is correct |
4 | Correct | 6 ms | 9676 KB | Output is correct |
5 | Correct | 6 ms | 9676 KB | Output is correct |
6 | Correct | 6 ms | 9676 KB | Output is correct |
7 | Correct | 7 ms | 9676 KB | Output is correct |
8 | Correct | 6 ms | 9676 KB | Output is correct |
9 | Correct | 262 ms | 42252 KB | Output is correct |
10 | Correct | 25 ms | 12928 KB | Output is correct |
11 | Correct | 131 ms | 27140 KB | Output is correct |
12 | Correct | 36 ms | 14612 KB | Output is correct |
13 | Correct | 22 ms | 13204 KB | Output is correct |
14 | Correct | 8 ms | 9676 KB | Output is correct |
15 | Correct | 7 ms | 9808 KB | Output is correct |
16 | Correct | 256 ms | 42304 KB | Output is correct |
17 | Correct | 7 ms | 9616 KB | Output is correct |
18 | Correct | 6 ms | 9676 KB | Output is correct |
19 | Correct | 6 ms | 9676 KB | Output is correct |
20 | Correct | 620 ms | 60764 KB | Output is correct |
21 | Correct | 628 ms | 58136 KB | Output is correct |
22 | Correct | 611 ms | 57936 KB | Output is correct |
23 | Correct | 484 ms | 64908 KB | Output is correct |
24 | Correct | 98 ms | 20728 KB | Output is correct |
25 | Correct | 109 ms | 25068 KB | Output is correct |
26 | Correct | 110 ms | 25144 KB | Output is correct |
27 | Correct | 621 ms | 74552 KB | Output is correct |
28 | Correct | 641 ms | 74480 KB | Output is correct |
29 | Correct | 614 ms | 74548 KB | Output is correct |
30 | Correct | 601 ms | 74548 KB | Output is correct |
31 | Correct | 6 ms | 9676 KB | Output is correct |
32 | Correct | 36 ms | 13272 KB | Output is correct |
33 | Correct | 45 ms | 15204 KB | Output is correct |
34 | Correct | 625 ms | 62836 KB | Output is correct |
35 | Correct | 12 ms | 10512 KB | Output is correct |
36 | Correct | 34 ms | 13508 KB | Output is correct |
37 | Correct | 76 ms | 17212 KB | Output is correct |
38 | Correct | 231 ms | 29044 KB | Output is correct |
39 | Correct | 302 ms | 36028 KB | Output is correct |
40 | Correct | 402 ms | 43288 KB | Output is correct |
41 | Correct | 551 ms | 50332 KB | Output is correct |
42 | Correct | 653 ms | 57436 KB | Output is correct |
43 | Correct | 6 ms | 9672 KB | Output is correct |
44 | Correct | 6 ms | 9676 KB | Output is correct |
45 | Correct | 6 ms | 9676 KB | Output is correct |
46 | Correct | 6 ms | 9676 KB | Output is correct |
47 | Correct | 7 ms | 9676 KB | Output is correct |
48 | Correct | 6 ms | 9676 KB | Output is correct |
49 | Correct | 6 ms | 9644 KB | Output is correct |
50 | Correct | 6 ms | 9676 KB | Output is correct |
51 | Correct | 6 ms | 9676 KB | Output is correct |
52 | Correct | 6 ms | 9676 KB | Output is correct |
53 | Correct | 6 ms | 9676 KB | Output is correct |
54 | Correct | 7 ms | 9804 KB | Output is correct |
55 | Correct | 8 ms | 9876 KB | Output is correct |
56 | Correct | 282 ms | 35644 KB | Output is correct |
57 | Correct | 431 ms | 47416 KB | Output is correct |
58 | Correct | 422 ms | 47416 KB | Output is correct |
59 | Correct | 7 ms | 9676 KB | Output is correct |
60 | Correct | 6 ms | 9672 KB | Output is correct |
61 | Correct | 6 ms | 9604 KB | Output is correct |
62 | Correct | 600 ms | 74676 KB | Output is correct |
63 | Correct | 616 ms | 74676 KB | Output is correct |
64 | Correct | 611 ms | 74392 KB | Output is correct |
65 | Correct | 8 ms | 9932 KB | Output is correct |
66 | Correct | 10 ms | 10264 KB | Output is correct |
67 | Correct | 270 ms | 35220 KB | Output is correct |
68 | Correct | 486 ms | 47800 KB | Output is correct |
69 | Correct | 662 ms | 60500 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9804 KB | Output is correct |
2 | Correct | 6 ms | 9688 KB | Output is correct |
3 | Correct | 6 ms | 9676 KB | Output is correct |
4 | Correct | 6 ms | 9676 KB | Output is correct |
5 | Correct | 6 ms | 9676 KB | Output is correct |
6 | Correct | 6 ms | 9676 KB | Output is correct |
7 | Correct | 7 ms | 9676 KB | Output is correct |
8 | Correct | 6 ms | 9676 KB | Output is correct |
9 | Correct | 262 ms | 42252 KB | Output is correct |
10 | Correct | 25 ms | 12928 KB | Output is correct |
11 | Correct | 131 ms | 27140 KB | Output is correct |
12 | Correct | 36 ms | 14612 KB | Output is correct |
13 | Correct | 22 ms | 13204 KB | Output is correct |
14 | Correct | 8 ms | 9676 KB | Output is correct |
15 | Correct | 7 ms | 9808 KB | Output is correct |
16 | Correct | 256 ms | 42304 KB | Output is correct |
17 | Correct | 609 ms | 74588 KB | Output is correct |
18 | Correct | 612 ms | 74904 KB | Output is correct |
19 | Correct | 590 ms | 62828 KB | Output is correct |
20 | Correct | 654 ms | 58592 KB | Output is correct |
21 | Correct | 570 ms | 60268 KB | Output is correct |
22 | Correct | 6 ms | 9676 KB | Output is correct |
23 | Correct | 78 ms | 17820 KB | Output is correct |
24 | Correct | 17 ms | 11256 KB | Output is correct |
25 | Correct | 48 ms | 15272 KB | Output is correct |
26 | Correct | 78 ms | 18680 KB | Output is correct |
27 | Correct | 265 ms | 34492 KB | Output is correct |
28 | Correct | 395 ms | 41492 KB | Output is correct |
29 | Correct | 461 ms | 46900 KB | Output is correct |
30 | Correct | 574 ms | 53048 KB | Output is correct |
31 | Correct | 641 ms | 59088 KB | Output is correct |
32 | Correct | 645 ms | 63928 KB | Output is correct |
33 | Correct | 610 ms | 74612 KB | Output is correct |
34 | Correct | 9 ms | 10060 KB | Output is correct |
35 | Correct | 10 ms | 10384 KB | Output is correct |
36 | Correct | 264 ms | 35536 KB | Output is correct |
37 | Correct | 479 ms | 48388 KB | Output is correct |
38 | Correct | 637 ms | 61112 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9804 KB | Output is correct |
2 | Correct | 6 ms | 9688 KB | Output is correct |
3 | Correct | 6 ms | 9676 KB | Output is correct |
4 | Correct | 6 ms | 9676 KB | Output is correct |
5 | Correct | 6 ms | 9676 KB | Output is correct |
6 | Correct | 6 ms | 9676 KB | Output is correct |
7 | Correct | 7 ms | 9676 KB | Output is correct |
8 | Correct | 6 ms | 9676 KB | Output is correct |
9 | Correct | 262 ms | 42252 KB | Output is correct |
10 | Correct | 25 ms | 12928 KB | Output is correct |
11 | Correct | 131 ms | 27140 KB | Output is correct |
12 | Correct | 36 ms | 14612 KB | Output is correct |
13 | Correct | 22 ms | 13204 KB | Output is correct |
14 | Correct | 8 ms | 9676 KB | Output is correct |
15 | Correct | 7 ms | 9808 KB | Output is correct |
16 | Correct | 256 ms | 42304 KB | Output is correct |
17 | Correct | 6 ms | 9676 KB | Output is correct |
18 | Correct | 6 ms | 9676 KB | Output is correct |
19 | Correct | 7 ms | 9688 KB | Output is correct |
20 | Correct | 6 ms | 9676 KB | Output is correct |
21 | Correct | 8 ms | 9676 KB | Output is correct |
22 | Correct | 6 ms | 9676 KB | Output is correct |
23 | Correct | 658 ms | 59948 KB | Output is correct |
24 | Correct | 6 ms | 9676 KB | Output is correct |
25 | Correct | 8 ms | 9932 KB | Output is correct |
26 | Correct | 8 ms | 9932 KB | Output is correct |
27 | Correct | 8 ms | 9976 KB | Output is correct |
28 | Correct | 224 ms | 29812 KB | Output is correct |
29 | Correct | 394 ms | 39720 KB | Output is correct |
30 | Correct | 515 ms | 49596 KB | Output is correct |
31 | Correct | 696 ms | 59752 KB | Output is correct |
32 | Correct | 7 ms | 9676 KB | Output is correct |
33 | Correct | 7 ms | 9676 KB | Output is correct |
34 | Correct | 6 ms | 9676 KB | Output is correct |
35 | Correct | 7 ms | 9676 KB | Output is correct |
36 | Correct | 7 ms | 9676 KB | Output is correct |
37 | Correct | 8 ms | 9676 KB | Output is correct |
38 | Correct | 7 ms | 9676 KB | Output is correct |
39 | Correct | 7 ms | 9688 KB | Output is correct |
40 | Correct | 6 ms | 9676 KB | Output is correct |
41 | Correct | 7 ms | 9676 KB | Output is correct |
42 | Correct | 7 ms | 9676 KB | Output is correct |
43 | Correct | 7 ms | 9804 KB | Output is correct |
44 | Correct | 8 ms | 9980 KB | Output is correct |
45 | Correct | 300 ms | 35692 KB | Output is correct |
46 | Correct | 434 ms | 47356 KB | Output is correct |
47 | Correct | 434 ms | 47416 KB | Output is correct |
48 | Correct | 7 ms | 9668 KB | Output is correct |
49 | Correct | 7 ms | 9676 KB | Output is correct |
50 | Correct | 6 ms | 9676 KB | Output is correct |
51 | Correct | 6 ms | 9676 KB | Output is correct |
52 | Correct | 7 ms | 9676 KB | Output is correct |
53 | Correct | 6 ms | 9632 KB | Output is correct |
54 | Correct | 6 ms | 9676 KB | Output is correct |
55 | Incorrect | 2451 ms | 55464 KB | Solution announced impossible, but it is possible. |
56 | Halted | 0 ms | 0 KB | - |