# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
443452 | 2021-07-10T14:06:20 Z | leinad2 | Fountain Parks (IOI21_parks) | C++17 | 2462 ms | 107712 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; } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9676 KB | Output is correct |
2 | Correct | 6 ms | 9676 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 | 6 ms | 9676 KB | Output is correct |
8 | Correct | 6 ms | 9676 KB | Output is correct |
9 | Correct | 335 ms | 42384 KB | Output is correct |
10 | Correct | 25 ms | 12944 KB | Output is correct |
11 | Correct | 124 ms | 27136 KB | Output is correct |
12 | Correct | 35 ms | 14572 KB | Output is correct |
13 | Correct | 21 ms | 13108 KB | Output is correct |
14 | Correct | 8 ms | 9676 KB | Output is correct |
15 | Correct | 7 ms | 9872 KB | Output is correct |
16 | Correct | 253 ms | 42300 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9676 KB | Output is correct |
2 | Correct | 6 ms | 9676 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 | 6 ms | 9676 KB | Output is correct |
8 | Correct | 6 ms | 9676 KB | Output is correct |
9 | Correct | 335 ms | 42384 KB | Output is correct |
10 | Correct | 25 ms | 12944 KB | Output is correct |
11 | Correct | 124 ms | 27136 KB | Output is correct |
12 | Correct | 35 ms | 14572 KB | Output is correct |
13 | Correct | 21 ms | 13108 KB | Output is correct |
14 | Correct | 8 ms | 9676 KB | Output is correct |
15 | Correct | 7 ms | 9872 KB | Output is correct |
16 | Correct | 253 ms | 42300 KB | Output is correct |
17 | Correct | 7 ms | 9676 KB | Output is correct |
18 | Correct | 8 ms | 9676 KB | Output is correct |
19 | Correct | 7 ms | 9676 KB | Output is correct |
20 | Correct | 6 ms | 9676 KB | Output is correct |
21 | Correct | 7 ms | 9676 KB | Output is correct |
22 | Correct | 6 ms | 9676 KB | Output is correct |
23 | Correct | 658 ms | 59968 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 | 9988 KB | Output is correct |
28 | Correct | 195 ms | 29776 KB | Output is correct |
29 | Correct | 347 ms | 39752 KB | Output is correct |
30 | Correct | 509 ms | 49528 KB | Output is correct |
31 | Correct | 685 ms | 59752 KB | Output is correct |
32 | Correct | 6 ms | 9676 KB | Output is correct |
33 | Correct | 7 ms | 9676 KB | Output is correct |
34 | Correct | 8 ms | 9676 KB | Output is correct |
35 | Correct | 6 ms | 9676 KB | Output is correct |
36 | Correct | 7 ms | 9648 KB | Output is correct |
37 | Correct | 6 ms | 9676 KB | Output is correct |
38 | Correct | 6 ms | 9676 KB | Output is correct |
39 | Correct | 7 ms | 9676 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 | 8 ms | 9804 KB | Output is correct |
44 | Correct | 8 ms | 9932 KB | Output is correct |
45 | Correct | 274 ms | 35688 KB | Output is correct |
46 | Correct | 512 ms | 47348 KB | Output is correct |
47 | Correct | 487 ms | 47384 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9676 KB | Output is correct |
2 | Correct | 6 ms | 9676 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 | 6 ms | 9676 KB | Output is correct |
8 | Correct | 6 ms | 9676 KB | Output is correct |
9 | Correct | 335 ms | 42384 KB | Output is correct |
10 | Correct | 25 ms | 12944 KB | Output is correct |
11 | Correct | 124 ms | 27136 KB | Output is correct |
12 | Correct | 35 ms | 14572 KB | Output is correct |
13 | Correct | 21 ms | 13108 KB | Output is correct |
14 | Correct | 8 ms | 9676 KB | Output is correct |
15 | Correct | 7 ms | 9872 KB | Output is correct |
16 | Correct | 253 ms | 42300 KB | Output is correct |
17 | Correct | 7 ms | 9676 KB | Output is correct |
18 | Correct | 8 ms | 9676 KB | Output is correct |
19 | Correct | 7 ms | 9676 KB | Output is correct |
20 | Correct | 6 ms | 9676 KB | Output is correct |
21 | Correct | 7 ms | 9676 KB | Output is correct |
22 | Correct | 6 ms | 9676 KB | Output is correct |
23 | Correct | 658 ms | 59968 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 | 9988 KB | Output is correct |
28 | Correct | 195 ms | 29776 KB | Output is correct |
29 | Correct | 347 ms | 39752 KB | Output is correct |
30 | Correct | 509 ms | 49528 KB | Output is correct |
31 | Correct | 685 ms | 59752 KB | Output is correct |
32 | Correct | 6 ms | 9676 KB | Output is correct |
33 | Correct | 7 ms | 9676 KB | Output is correct |
34 | Correct | 8 ms | 9676 KB | Output is correct |
35 | Correct | 6 ms | 9676 KB | Output is correct |
36 | Correct | 7 ms | 9648 KB | Output is correct |
37 | Correct | 6 ms | 9676 KB | Output is correct |
38 | Correct | 6 ms | 9676 KB | Output is correct |
39 | Correct | 7 ms | 9676 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 | 8 ms | 9804 KB | Output is correct |
44 | Correct | 8 ms | 9932 KB | Output is correct |
45 | Correct | 274 ms | 35688 KB | Output is correct |
46 | Correct | 512 ms | 47348 KB | Output is correct |
47 | Correct | 487 ms | 47384 KB | Output is correct |
48 | Correct | 6 ms | 9676 KB | Output is correct |
49 | Correct | 7 ms | 9676 KB | Output is correct |
50 | Correct | 8 ms | 9676 KB | Output is correct |
51 | Correct | 8 ms | 9676 KB | Output is correct |
52 | Correct | 6 ms | 9676 KB | Output is correct |
53 | Correct | 7 ms | 9676 KB | Output is correct |
54 | Correct | 7 ms | 9676 KB | Output is correct |
55 | Runtime error | 2462 ms | 107712 KB | Execution killed with signal 11 |
56 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9676 KB | Output is correct |
2 | Correct | 6 ms | 9676 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 | 6 ms | 9676 KB | Output is correct |
8 | Correct | 6 ms | 9676 KB | Output is correct |
9 | Correct | 335 ms | 42384 KB | Output is correct |
10 | Correct | 25 ms | 12944 KB | Output is correct |
11 | Correct | 124 ms | 27136 KB | Output is correct |
12 | Correct | 35 ms | 14572 KB | Output is correct |
13 | Correct | 21 ms | 13108 KB | Output is correct |
14 | Correct | 8 ms | 9676 KB | Output is correct |
15 | Correct | 7 ms | 9872 KB | Output is correct |
16 | Correct | 253 ms | 42300 KB | Output is correct |
17 | Correct | 6 ms | 9676 KB | Output is correct |
18 | Correct | 7 ms | 9676 KB | Output is correct |
19 | Correct | 6 ms | 9676 KB | Output is correct |
20 | Correct | 609 ms | 60684 KB | Output is correct |
21 | Correct | 600 ms | 58184 KB | Output is correct |
22 | Correct | 634 ms | 57920 KB | Output is correct |
23 | Correct | 490 ms | 64920 KB | Output is correct |
24 | Correct | 97 ms | 20792 KB | Output is correct |
25 | Correct | 123 ms | 25116 KB | Output is correct |
26 | Correct | 109 ms | 25080 KB | Output is correct |
27 | Correct | 643 ms | 74612 KB | Output is correct |
28 | Correct | 632 ms | 74552 KB | Output is correct |
29 | Correct | 589 ms | 74528 KB | Output is correct |
30 | Correct | 637 ms | 74568 KB | Output is correct |
31 | Correct | 6 ms | 9676 KB | Output is correct |
32 | Correct | 43 ms | 13292 KB | Output is correct |
33 | Correct | 48 ms | 15248 KB | Output is correct |
34 | Correct | 615 ms | 62964 KB | Output is correct |
35 | Correct | 14 ms | 10512 KB | Output is correct |
36 | Correct | 41 ms | 13528 KB | Output is correct |
37 | Correct | 67 ms | 17128 KB | Output is correct |
38 | Correct | 212 ms | 28984 KB | Output is correct |
39 | Correct | 338 ms | 36000 KB | Output is correct |
40 | Correct | 470 ms | 43368 KB | Output is correct |
41 | Correct | 551 ms | 50352 KB | Output is correct |
42 | Correct | 681 ms | 57524 KB | Output is correct |
43 | Correct | 7 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 | 6 ms | 9676 KB | Output is correct |
48 | Correct | 6 ms | 9640 KB | Output is correct |
49 | Correct | 6 ms | 9676 KB | Output is correct |
50 | Correct | 7 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 | 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 | 283 ms | 35692 KB | Output is correct |
57 | Correct | 431 ms | 47372 KB | Output is correct |
58 | Correct | 445 ms | 47476 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 | 599 ms | 74672 KB | Output is correct |
63 | Correct | 639 ms | 74548 KB | Output is correct |
64 | Correct | 616 ms | 74296 KB | Output is correct |
65 | Correct | 8 ms | 9932 KB | Output is correct |
66 | Correct | 10 ms | 10188 KB | Output is correct |
67 | Correct | 259 ms | 35176 KB | Output is correct |
68 | Correct | 432 ms | 47800 KB | Output is correct |
69 | Correct | 622 ms | 60536 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9676 KB | Output is correct |
2 | Correct | 6 ms | 9676 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 | 6 ms | 9676 KB | Output is correct |
8 | Correct | 6 ms | 9676 KB | Output is correct |
9 | Correct | 335 ms | 42384 KB | Output is correct |
10 | Correct | 25 ms | 12944 KB | Output is correct |
11 | Correct | 124 ms | 27136 KB | Output is correct |
12 | Correct | 35 ms | 14572 KB | Output is correct |
13 | Correct | 21 ms | 13108 KB | Output is correct |
14 | Correct | 8 ms | 9676 KB | Output is correct |
15 | Correct | 7 ms | 9872 KB | Output is correct |
16 | Correct | 253 ms | 42300 KB | Output is correct |
17 | Correct | 608 ms | 74604 KB | Output is correct |
18 | Correct | 631 ms | 74552 KB | Output is correct |
19 | Correct | 606 ms | 62904 KB | Output is correct |
20 | Correct | 657 ms | 58656 KB | Output is correct |
21 | Correct | 569 ms | 60176 KB | Output is correct |
22 | Correct | 6 ms | 9676 KB | Output is correct |
23 | Correct | 73 ms | 17780 KB | Output is correct |
24 | Correct | 17 ms | 11272 KB | Output is correct |
25 | Correct | 47 ms | 15232 KB | Output is correct |
26 | Correct | 74 ms | 18616 KB | Output is correct |
27 | Correct | 313 ms | 34728 KB | Output is correct |
28 | Correct | 409 ms | 41420 KB | Output is correct |
29 | Correct | 480 ms | 46808 KB | Output is correct |
30 | Correct | 586 ms | 52948 KB | Output is correct |
31 | Correct | 673 ms | 59112 KB | Output is correct |
32 | Correct | 658 ms | 63600 KB | Output is correct |
33 | Correct | 598 ms | 74624 KB | Output is correct |
34 | Correct | 9 ms | 10060 KB | Output is correct |
35 | Correct | 14 ms | 10472 KB | Output is correct |
36 | Correct | 287 ms | 35556 KB | Output is correct |
37 | Correct | 455 ms | 48568 KB | Output is correct |
38 | Correct | 682 ms | 61304 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 9676 KB | Output is correct |
2 | Correct | 6 ms | 9676 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 | 6 ms | 9676 KB | Output is correct |
8 | Correct | 6 ms | 9676 KB | Output is correct |
9 | Correct | 335 ms | 42384 KB | Output is correct |
10 | Correct | 25 ms | 12944 KB | Output is correct |
11 | Correct | 124 ms | 27136 KB | Output is correct |
12 | Correct | 35 ms | 14572 KB | Output is correct |
13 | Correct | 21 ms | 13108 KB | Output is correct |
14 | Correct | 8 ms | 9676 KB | Output is correct |
15 | Correct | 7 ms | 9872 KB | Output is correct |
16 | Correct | 253 ms | 42300 KB | Output is correct |
17 | Correct | 7 ms | 9676 KB | Output is correct |
18 | Correct | 8 ms | 9676 KB | Output is correct |
19 | Correct | 7 ms | 9676 KB | Output is correct |
20 | Correct | 6 ms | 9676 KB | Output is correct |
21 | Correct | 7 ms | 9676 KB | Output is correct |
22 | Correct | 6 ms | 9676 KB | Output is correct |
23 | Correct | 658 ms | 59968 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 | 9988 KB | Output is correct |
28 | Correct | 195 ms | 29776 KB | Output is correct |
29 | Correct | 347 ms | 39752 KB | Output is correct |
30 | Correct | 509 ms | 49528 KB | Output is correct |
31 | Correct | 685 ms | 59752 KB | Output is correct |
32 | Correct | 6 ms | 9676 KB | Output is correct |
33 | Correct | 7 ms | 9676 KB | Output is correct |
34 | Correct | 8 ms | 9676 KB | Output is correct |
35 | Correct | 6 ms | 9676 KB | Output is correct |
36 | Correct | 7 ms | 9648 KB | Output is correct |
37 | Correct | 6 ms | 9676 KB | Output is correct |
38 | Correct | 6 ms | 9676 KB | Output is correct |
39 | Correct | 7 ms | 9676 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 | 8 ms | 9804 KB | Output is correct |
44 | Correct | 8 ms | 9932 KB | Output is correct |
45 | Correct | 274 ms | 35688 KB | Output is correct |
46 | Correct | 512 ms | 47348 KB | Output is correct |
47 | Correct | 487 ms | 47384 KB | Output is correct |
48 | Correct | 6 ms | 9676 KB | Output is correct |
49 | Correct | 7 ms | 9676 KB | Output is correct |
50 | Correct | 8 ms | 9676 KB | Output is correct |
51 | Correct | 8 ms | 9676 KB | Output is correct |
52 | Correct | 6 ms | 9676 KB | Output is correct |
53 | Correct | 7 ms | 9676 KB | Output is correct |
54 | Correct | 7 ms | 9676 KB | Output is correct |
55 | Runtime error | 2462 ms | 107712 KB | Execution killed with signal 11 |
56 | Halted | 0 ms | 0 KB | - |