# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
443491 | 2021-07-10T15:13:50 Z | leinad2 | Fountain Parks (IOI21_parks) | C++17 | 2439 ms | 74736 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 | 9676 KB | Output is correct |
2 | Correct | 7 ms | 9676 KB | Output is correct |
3 | Correct | 6 ms | 9676 KB | Output is correct |
4 | Correct | 7 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 | 277 ms | 42284 KB | Output is correct |
10 | Correct | 26 ms | 12932 KB | Output is correct |
11 | Correct | 116 ms | 27200 KB | Output is correct |
12 | Correct | 34 ms | 14596 KB | Output is correct |
13 | Correct | 21 ms | 13128 KB | Output is correct |
14 | Correct | 7 ms | 9692 KB | Output is correct |
15 | Correct | 7 ms | 9816 KB | Output is correct |
16 | Correct | 252 ms | 42248 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9676 KB | Output is correct |
2 | Correct | 7 ms | 9676 KB | Output is correct |
3 | Correct | 6 ms | 9676 KB | Output is correct |
4 | Correct | 7 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 | 277 ms | 42284 KB | Output is correct |
10 | Correct | 26 ms | 12932 KB | Output is correct |
11 | Correct | 116 ms | 27200 KB | Output is correct |
12 | Correct | 34 ms | 14596 KB | Output is correct |
13 | Correct | 21 ms | 13128 KB | Output is correct |
14 | Correct | 7 ms | 9692 KB | Output is correct |
15 | Correct | 7 ms | 9816 KB | Output is correct |
16 | Correct | 252 ms | 42248 KB | Output is correct |
17 | Correct | 6 ms | 9804 KB | Output is correct |
18 | Correct | 6 ms | 9676 KB | Output is correct |
19 | Correct | 6 ms | 9676 KB | Output is correct |
20 | Correct | 6 ms | 9676 KB | Output is correct |
21 | Correct | 6 ms | 9676 KB | Output is correct |
22 | Correct | 6 ms | 9712 KB | Output is correct |
23 | Correct | 625 ms | 59796 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 | 9 ms | 10004 KB | Output is correct |
28 | Correct | 210 ms | 29700 KB | Output is correct |
29 | Correct | 343 ms | 39888 KB | Output is correct |
30 | Correct | 492 ms | 49540 KB | Output is correct |
31 | Correct | 666 ms | 59828 KB | Output is correct |
32 | Correct | 7 ms | 9676 KB | Output is correct |
33 | Correct | 7 ms | 9676 KB | Output is correct |
34 | Correct | 7 ms | 9676 KB | Output is correct |
35 | Correct | 7 ms | 9676 KB | Output is correct |
36 | Correct | 6 ms | 9676 KB | Output is correct |
37 | Correct | 7 ms | 9720 KB | Output is correct |
38 | Correct | 8 ms | 9676 KB | Output is correct |
39 | Correct | 6 ms | 9676 KB | Output is correct |
40 | Correct | 7 ms | 9676 KB | Output is correct |
41 | Correct | 7 ms | 9652 KB | Output is correct |
42 | Correct | 6 ms | 9676 KB | Output is correct |
43 | Correct | 7 ms | 9808 KB | Output is correct |
44 | Correct | 7 ms | 9912 KB | Output is correct |
45 | Correct | 300 ms | 35772 KB | Output is correct |
46 | Correct | 427 ms | 47364 KB | Output is correct |
47 | Correct | 435 ms | 47412 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9676 KB | Output is correct |
2 | Correct | 7 ms | 9676 KB | Output is correct |
3 | Correct | 6 ms | 9676 KB | Output is correct |
4 | Correct | 7 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 | 277 ms | 42284 KB | Output is correct |
10 | Correct | 26 ms | 12932 KB | Output is correct |
11 | Correct | 116 ms | 27200 KB | Output is correct |
12 | Correct | 34 ms | 14596 KB | Output is correct |
13 | Correct | 21 ms | 13128 KB | Output is correct |
14 | Correct | 7 ms | 9692 KB | Output is correct |
15 | Correct | 7 ms | 9816 KB | Output is correct |
16 | Correct | 252 ms | 42248 KB | Output is correct |
17 | Correct | 6 ms | 9804 KB | Output is correct |
18 | Correct | 6 ms | 9676 KB | Output is correct |
19 | Correct | 6 ms | 9676 KB | Output is correct |
20 | Correct | 6 ms | 9676 KB | Output is correct |
21 | Correct | 6 ms | 9676 KB | Output is correct |
22 | Correct | 6 ms | 9712 KB | Output is correct |
23 | Correct | 625 ms | 59796 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 | 9 ms | 10004 KB | Output is correct |
28 | Correct | 210 ms | 29700 KB | Output is correct |
29 | Correct | 343 ms | 39888 KB | Output is correct |
30 | Correct | 492 ms | 49540 KB | Output is correct |
31 | Correct | 666 ms | 59828 KB | Output is correct |
32 | Correct | 7 ms | 9676 KB | Output is correct |
33 | Correct | 7 ms | 9676 KB | Output is correct |
34 | Correct | 7 ms | 9676 KB | Output is correct |
35 | Correct | 7 ms | 9676 KB | Output is correct |
36 | Correct | 6 ms | 9676 KB | Output is correct |
37 | Correct | 7 ms | 9720 KB | Output is correct |
38 | Correct | 8 ms | 9676 KB | Output is correct |
39 | Correct | 6 ms | 9676 KB | Output is correct |
40 | Correct | 7 ms | 9676 KB | Output is correct |
41 | Correct | 7 ms | 9652 KB | Output is correct |
42 | Correct | 6 ms | 9676 KB | Output is correct |
43 | Correct | 7 ms | 9808 KB | Output is correct |
44 | Correct | 7 ms | 9912 KB | Output is correct |
45 | Correct | 300 ms | 35772 KB | Output is correct |
46 | Correct | 427 ms | 47364 KB | Output is correct |
47 | Correct | 435 ms | 47412 KB | Output is correct |
48 | Correct | 6 ms | 9676 KB | Output is correct |
49 | Correct | 6 ms | 9676 KB | Output is correct |
50 | Correct | 6 ms | 9676 KB | Output is correct |
51 | Correct | 6 ms | 9680 KB | Output is correct |
52 | Correct | 6 ms | 9728 KB | Output is correct |
53 | Correct | 6 ms | 9676 KB | Output is correct |
54 | Correct | 7 ms | 9676 KB | Output is correct |
55 | Incorrect | 2439 ms | 55692 KB | Solution announced impossible, but it is possible. |
56 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9676 KB | Output is correct |
2 | Correct | 7 ms | 9676 KB | Output is correct |
3 | Correct | 6 ms | 9676 KB | Output is correct |
4 | Correct | 7 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 | 277 ms | 42284 KB | Output is correct |
10 | Correct | 26 ms | 12932 KB | Output is correct |
11 | Correct | 116 ms | 27200 KB | Output is correct |
12 | Correct | 34 ms | 14596 KB | Output is correct |
13 | Correct | 21 ms | 13128 KB | Output is correct |
14 | Correct | 7 ms | 9692 KB | Output is correct |
15 | Correct | 7 ms | 9816 KB | Output is correct |
16 | Correct | 252 ms | 42248 KB | Output is correct |
17 | Correct | 6 ms | 9676 KB | Output is correct |
18 | Correct | 6 ms | 9676 KB | Output is correct |
19 | Correct | 6 ms | 9676 KB | Output is correct |
20 | Correct | 679 ms | 60744 KB | Output is correct |
21 | Correct | 605 ms | 58136 KB | Output is correct |
22 | Correct | 605 ms | 57932 KB | Output is correct |
23 | Correct | 488 ms | 64896 KB | Output is correct |
24 | Correct | 97 ms | 20660 KB | Output is correct |
25 | Correct | 116 ms | 25140 KB | Output is correct |
26 | Correct | 116 ms | 25080 KB | Output is correct |
27 | Correct | 651 ms | 74692 KB | Output is correct |
28 | Correct | 623 ms | 74476 KB | Output is correct |
29 | Correct | 592 ms | 74548 KB | Output is correct |
30 | Correct | 611 ms | 74680 KB | Output is correct |
31 | Correct | 7 ms | 9676 KB | Output is correct |
32 | Correct | 35 ms | 13264 KB | Output is correct |
33 | Correct | 44 ms | 15212 KB | Output is correct |
34 | Correct | 640 ms | 63088 KB | Output is correct |
35 | Correct | 11 ms | 10512 KB | Output is correct |
36 | Correct | 33 ms | 13480 KB | Output is correct |
37 | Correct | 64 ms | 17176 KB | Output is correct |
38 | Correct | 211 ms | 29012 KB | Output is correct |
39 | Correct | 312 ms | 36024 KB | Output is correct |
40 | Correct | 456 ms | 43280 KB | Output is correct |
41 | Correct | 518 ms | 50448 KB | Output is correct |
42 | Correct | 622 ms | 57528 KB | Output is correct |
43 | Correct | 6 ms | 9676 KB | Output is correct |
44 | Correct | 6 ms | 9676 KB | Output is correct |
45 | Correct | 6 ms | 9676 KB | Output is correct |
46 | Correct | 7 ms | 9676 KB | Output is correct |
47 | Correct | 7 ms | 9696 KB | Output is correct |
48 | Correct | 6 ms | 9676 KB | Output is correct |
49 | Correct | 6 ms | 9676 KB | Output is correct |
50 | Correct | 6 ms | 9676 KB | Output is correct |
51 | Correct | 7 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 | 9932 KB | Output is correct |
56 | Correct | 286 ms | 35748 KB | Output is correct |
57 | Correct | 417 ms | 47336 KB | Output is correct |
58 | Correct | 434 ms | 47404 KB | Output is correct |
59 | Correct | 6 ms | 9676 KB | Output is correct |
60 | Correct | 6 ms | 9676 KB | Output is correct |
61 | Correct | 7 ms | 9676 KB | Output is correct |
62 | Correct | 592 ms | 74576 KB | Output is correct |
63 | Correct | 600 ms | 74556 KB | Output is correct |
64 | Correct | 594 ms | 74420 KB | Output is correct |
65 | Correct | 8 ms | 9932 KB | Output is correct |
66 | Correct | 10 ms | 10188 KB | Output is correct |
67 | Correct | 272 ms | 35216 KB | Output is correct |
68 | Correct | 457 ms | 47800 KB | Output is correct |
69 | Correct | 637 ms | 60600 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9676 KB | Output is correct |
2 | Correct | 7 ms | 9676 KB | Output is correct |
3 | Correct | 6 ms | 9676 KB | Output is correct |
4 | Correct | 7 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 | 277 ms | 42284 KB | Output is correct |
10 | Correct | 26 ms | 12932 KB | Output is correct |
11 | Correct | 116 ms | 27200 KB | Output is correct |
12 | Correct | 34 ms | 14596 KB | Output is correct |
13 | Correct | 21 ms | 13128 KB | Output is correct |
14 | Correct | 7 ms | 9692 KB | Output is correct |
15 | Correct | 7 ms | 9816 KB | Output is correct |
16 | Correct | 252 ms | 42248 KB | Output is correct |
17 | Correct | 617 ms | 74568 KB | Output is correct |
18 | Correct | 596 ms | 74736 KB | Output is correct |
19 | Correct | 589 ms | 62896 KB | Output is correct |
20 | Correct | 702 ms | 58628 KB | Output is correct |
21 | Correct | 590 ms | 60200 KB | Output is correct |
22 | Correct | 6 ms | 9676 KB | Output is correct |
23 | Correct | 73 ms | 17868 KB | Output is correct |
24 | Correct | 17 ms | 11260 KB | Output is correct |
25 | Correct | 48 ms | 15292 KB | Output is correct |
26 | Correct | 74 ms | 18732 KB | Output is correct |
27 | Correct | 281 ms | 34524 KB | Output is correct |
28 | Correct | 366 ms | 41516 KB | Output is correct |
29 | Correct | 482 ms | 46928 KB | Output is correct |
30 | Correct | 576 ms | 52920 KB | Output is correct |
31 | Correct | 625 ms | 59088 KB | Output is correct |
32 | Correct | 676 ms | 63592 KB | Output is correct |
33 | Correct | 599 ms | 74640 KB | Output is correct |
34 | Correct | 9 ms | 10060 KB | Output is correct |
35 | Correct | 11 ms | 10436 KB | Output is correct |
36 | Correct | 247 ms | 35488 KB | Output is correct |
37 | Correct | 435 ms | 48464 KB | Output is correct |
38 | Correct | 644 ms | 61172 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9676 KB | Output is correct |
2 | Correct | 7 ms | 9676 KB | Output is correct |
3 | Correct | 6 ms | 9676 KB | Output is correct |
4 | Correct | 7 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 | 277 ms | 42284 KB | Output is correct |
10 | Correct | 26 ms | 12932 KB | Output is correct |
11 | Correct | 116 ms | 27200 KB | Output is correct |
12 | Correct | 34 ms | 14596 KB | Output is correct |
13 | Correct | 21 ms | 13128 KB | Output is correct |
14 | Correct | 7 ms | 9692 KB | Output is correct |
15 | Correct | 7 ms | 9816 KB | Output is correct |
16 | Correct | 252 ms | 42248 KB | Output is correct |
17 | Correct | 6 ms | 9804 KB | Output is correct |
18 | Correct | 6 ms | 9676 KB | Output is correct |
19 | Correct | 6 ms | 9676 KB | Output is correct |
20 | Correct | 6 ms | 9676 KB | Output is correct |
21 | Correct | 6 ms | 9676 KB | Output is correct |
22 | Correct | 6 ms | 9712 KB | Output is correct |
23 | Correct | 625 ms | 59796 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 | 9 ms | 10004 KB | Output is correct |
28 | Correct | 210 ms | 29700 KB | Output is correct |
29 | Correct | 343 ms | 39888 KB | Output is correct |
30 | Correct | 492 ms | 49540 KB | Output is correct |
31 | Correct | 666 ms | 59828 KB | Output is correct |
32 | Correct | 7 ms | 9676 KB | Output is correct |
33 | Correct | 7 ms | 9676 KB | Output is correct |
34 | Correct | 7 ms | 9676 KB | Output is correct |
35 | Correct | 7 ms | 9676 KB | Output is correct |
36 | Correct | 6 ms | 9676 KB | Output is correct |
37 | Correct | 7 ms | 9720 KB | Output is correct |
38 | Correct | 8 ms | 9676 KB | Output is correct |
39 | Correct | 6 ms | 9676 KB | Output is correct |
40 | Correct | 7 ms | 9676 KB | Output is correct |
41 | Correct | 7 ms | 9652 KB | Output is correct |
42 | Correct | 6 ms | 9676 KB | Output is correct |
43 | Correct | 7 ms | 9808 KB | Output is correct |
44 | Correct | 7 ms | 9912 KB | Output is correct |
45 | Correct | 300 ms | 35772 KB | Output is correct |
46 | Correct | 427 ms | 47364 KB | Output is correct |
47 | Correct | 435 ms | 47412 KB | Output is correct |
48 | Correct | 6 ms | 9676 KB | Output is correct |
49 | Correct | 6 ms | 9676 KB | Output is correct |
50 | Correct | 6 ms | 9676 KB | Output is correct |
51 | Correct | 6 ms | 9680 KB | Output is correct |
52 | Correct | 6 ms | 9728 KB | Output is correct |
53 | Correct | 6 ms | 9676 KB | Output is correct |
54 | Correct | 7 ms | 9676 KB | Output is correct |
55 | Incorrect | 2439 ms | 55692 KB | Solution announced impossible, but it is possible. |
56 | Halted | 0 ms | 0 KB | - |