# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
283958 | 2020-08-26T10:05:23 Z | hank55663 | Simurgh (IOI17_simurgh) | C++14 | 352 ms | 2296 KB |
#include "simurgh.h" #define x first #define y second #define pb push_back #include<bits/stdc++.h> using namespace std; int f[505]; int f2[505]; int Find(int x){ if(f[x]==x)return x; return f[x]=Find(f[x]); } int Find2(int x){ if(f2[x]==x)return x; return f2[x]=Find2(f2[x]); } int check[250500]; int ok[250500]; std::vector<int> find_roads(int n, std::vector<int> u, std::vector<int> v) { vector<int> ans; int m=u.size(); for(int i = 0;i<n;i++)f2[i]=i; for(int i = 0;i<n;i++){ for(int j=0;j<n;j++)f[j]=Find2(j); vector<int> road; vector<int> road2; vector<int> candidate; for(int j = 0;j<m;j++){ if(Find2(u[j])!=Find2(i)&&Find2(v[j])!=Find2(i)){ if(Find(u[j])!=Find(v[j])&&Find2(u[j])!=Find2(v[j])){ road.pb(j); f[Find(u[j])]=Find(v[j]); } } else if(Find2(u[j])!=Find2(i)||Find2(v[j])!=Find2(i)){ candidate.pb(j); //printf("%d %d\n",i,j); } } map<int,vector<int> > m; for(auto it:candidate){ if(Find2(u[it])==Find2(i)){ m[Find(v[it])].pb(it); } else{ m[Find(u[it])].pb(it); } } vector<pair<int,vector<int> > > vv; for(auto it:m){ vv.pb(it); road2.pb(it.y[0]); } for(auto it:road){ road2.pb(it); } for(auto it:ans)road2.pb(it); swap(road,road2); for(int i = 0;i<vv.size();i++){ int x=-1; for(auto it:vv[i].y){ if(check[it]){ x=it; break; } } if(x!=-1) road[i]=x; } int x=count_common_roads(road); // printf("!\n"); for(int j = 0;j<vv.size();j++){ int need=x; int now=road[j]; vector<int> res; if(check[now]&&!ok[now])need++; for(auto it:vv[j].y){ if(!check[it]){ road[j]=it; int y=count_common_roads(road); // printf("! %d\n",it); if(y>need){ res.clear(); need=y; } if(y==need){ res.push_back(it); } } } for(auto it:res){ check[it]=1,ok[it]=1,ans.pb(it);//printf("%d\n",it); f2[Find2(v[it])]=Find2(u[it]); } for(auto it:vv[j].y){ if(!check[it]){ check[it]=1; ok[it]=0; } } road[j]=now; // printf("%d end\n",i); } } return ans; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 256 KB | correct |
2 | Correct | 1 ms | 256 KB | correct |
3 | Correct | 1 ms | 256 KB | correct |
4 | Correct | 0 ms | 384 KB | correct |
5 | Correct | 1 ms | 384 KB | correct |
6 | Correct | 0 ms | 256 KB | correct |
7 | Correct | 1 ms | 256 KB | correct |
8 | Correct | 0 ms | 384 KB | correct |
9 | Correct | 0 ms | 256 KB | correct |
10 | Correct | 1 ms | 384 KB | correct |
11 | Correct | 1 ms | 256 KB | correct |
12 | Correct | 0 ms | 256 KB | correct |
13 | Correct | 1 ms | 256 KB | correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 256 KB | correct |
2 | Correct | 1 ms | 256 KB | correct |
3 | Correct | 1 ms | 256 KB | correct |
4 | Correct | 0 ms | 384 KB | correct |
5 | Correct | 1 ms | 384 KB | correct |
6 | Correct | 0 ms | 256 KB | correct |
7 | Correct | 1 ms | 256 KB | correct |
8 | Correct | 0 ms | 384 KB | correct |
9 | Correct | 0 ms | 256 KB | correct |
10 | Correct | 1 ms | 384 KB | correct |
11 | Correct | 1 ms | 256 KB | correct |
12 | Correct | 0 ms | 256 KB | correct |
13 | Correct | 1 ms | 256 KB | correct |
14 | Correct | 4 ms | 384 KB | correct |
15 | Correct | 4 ms | 384 KB | correct |
16 | Correct | 5 ms | 512 KB | correct |
17 | Correct | 3 ms | 384 KB | correct |
18 | Correct | 2 ms | 384 KB | correct |
19 | Correct | 5 ms | 384 KB | correct |
20 | Correct | 3 ms | 384 KB | correct |
21 | Correct | 3 ms | 384 KB | correct |
22 | Correct | 3 ms | 384 KB | correct |
23 | Correct | 3 ms | 384 KB | correct |
24 | Correct | 2 ms | 384 KB | correct |
25 | Correct | 2 ms | 384 KB | correct |
26 | Correct | 2 ms | 384 KB | correct |
27 | Correct | 2 ms | 384 KB | correct |
28 | Correct | 1 ms | 384 KB | correct |
29 | Correct | 1 ms | 384 KB | correct |
30 | Correct | 2 ms | 384 KB | correct |
31 | Correct | 2 ms | 384 KB | correct |
32 | Correct | 2 ms | 384 KB | correct |
33 | Correct | 2 ms | 384 KB | correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 256 KB | correct |
2 | Correct | 1 ms | 256 KB | correct |
3 | Correct | 1 ms | 256 KB | correct |
4 | Correct | 0 ms | 384 KB | correct |
5 | Correct | 1 ms | 384 KB | correct |
6 | Correct | 0 ms | 256 KB | correct |
7 | Correct | 1 ms | 256 KB | correct |
8 | Correct | 0 ms | 384 KB | correct |
9 | Correct | 0 ms | 256 KB | correct |
10 | Correct | 1 ms | 384 KB | correct |
11 | Correct | 1 ms | 256 KB | correct |
12 | Correct | 0 ms | 256 KB | correct |
13 | Correct | 1 ms | 256 KB | correct |
14 | Correct | 4 ms | 384 KB | correct |
15 | Correct | 4 ms | 384 KB | correct |
16 | Correct | 5 ms | 512 KB | correct |
17 | Correct | 3 ms | 384 KB | correct |
18 | Correct | 2 ms | 384 KB | correct |
19 | Correct | 5 ms | 384 KB | correct |
20 | Correct | 3 ms | 384 KB | correct |
21 | Correct | 3 ms | 384 KB | correct |
22 | Correct | 3 ms | 384 KB | correct |
23 | Correct | 3 ms | 384 KB | correct |
24 | Correct | 2 ms | 384 KB | correct |
25 | Correct | 2 ms | 384 KB | correct |
26 | Correct | 2 ms | 384 KB | correct |
27 | Correct | 2 ms | 384 KB | correct |
28 | Correct | 1 ms | 384 KB | correct |
29 | Correct | 1 ms | 384 KB | correct |
30 | Correct | 2 ms | 384 KB | correct |
31 | Correct | 2 ms | 384 KB | correct |
32 | Correct | 2 ms | 384 KB | correct |
33 | Correct | 2 ms | 384 KB | correct |
34 | Correct | 335 ms | 1312 KB | correct |
35 | Correct | 349 ms | 1260 KB | correct |
36 | Correct | 239 ms | 1008 KB | correct |
37 | Correct | 18 ms | 384 KB | correct |
38 | Correct | 352 ms | 1376 KB | correct |
39 | Correct | 258 ms | 1164 KB | correct |
40 | Correct | 226 ms | 1028 KB | correct |
41 | Correct | 343 ms | 1144 KB | correct |
42 | Correct | 329 ms | 1024 KB | correct |
43 | Correct | 190 ms | 888 KB | correct |
44 | Correct | 143 ms | 760 KB | correct |
45 | Correct | 171 ms | 760 KB | correct |
46 | Correct | 129 ms | 640 KB | correct |
47 | Correct | 58 ms | 512 KB | correct |
48 | Correct | 8 ms | 384 KB | correct |
49 | Correct | 20 ms | 384 KB | correct |
50 | Correct | 58 ms | 508 KB | correct |
51 | Correct | 170 ms | 1016 KB | correct |
52 | Correct | 159 ms | 640 KB | correct |
53 | Correct | 131 ms | 632 KB | correct |
54 | Correct | 184 ms | 760 KB | correct |
55 | Correct | 183 ms | 840 KB | correct |
56 | Correct | 171 ms | 760 KB | correct |
57 | Correct | 164 ms | 716 KB | correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | correct |
2 | Correct | 0 ms | 384 KB | correct |
3 | Incorrect | 169 ms | 2296 KB | WA in grader: NO |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 256 KB | correct |
2 | Correct | 1 ms | 256 KB | correct |
3 | Correct | 1 ms | 256 KB | correct |
4 | Correct | 0 ms | 384 KB | correct |
5 | Correct | 1 ms | 384 KB | correct |
6 | Correct | 0 ms | 256 KB | correct |
7 | Correct | 1 ms | 256 KB | correct |
8 | Correct | 0 ms | 384 KB | correct |
9 | Correct | 0 ms | 256 KB | correct |
10 | Correct | 1 ms | 384 KB | correct |
11 | Correct | 1 ms | 256 KB | correct |
12 | Correct | 0 ms | 256 KB | correct |
13 | Correct | 1 ms | 256 KB | correct |
14 | Correct | 4 ms | 384 KB | correct |
15 | Correct | 4 ms | 384 KB | correct |
16 | Correct | 5 ms | 512 KB | correct |
17 | Correct | 3 ms | 384 KB | correct |
18 | Correct | 2 ms | 384 KB | correct |
19 | Correct | 5 ms | 384 KB | correct |
20 | Correct | 3 ms | 384 KB | correct |
21 | Correct | 3 ms | 384 KB | correct |
22 | Correct | 3 ms | 384 KB | correct |
23 | Correct | 3 ms | 384 KB | correct |
24 | Correct | 2 ms | 384 KB | correct |
25 | Correct | 2 ms | 384 KB | correct |
26 | Correct | 2 ms | 384 KB | correct |
27 | Correct | 2 ms | 384 KB | correct |
28 | Correct | 1 ms | 384 KB | correct |
29 | Correct | 1 ms | 384 KB | correct |
30 | Correct | 2 ms | 384 KB | correct |
31 | Correct | 2 ms | 384 KB | correct |
32 | Correct | 2 ms | 384 KB | correct |
33 | Correct | 2 ms | 384 KB | correct |
34 | Correct | 335 ms | 1312 KB | correct |
35 | Correct | 349 ms | 1260 KB | correct |
36 | Correct | 239 ms | 1008 KB | correct |
37 | Correct | 18 ms | 384 KB | correct |
38 | Correct | 352 ms | 1376 KB | correct |
39 | Correct | 258 ms | 1164 KB | correct |
40 | Correct | 226 ms | 1028 KB | correct |
41 | Correct | 343 ms | 1144 KB | correct |
42 | Correct | 329 ms | 1024 KB | correct |
43 | Correct | 190 ms | 888 KB | correct |
44 | Correct | 143 ms | 760 KB | correct |
45 | Correct | 171 ms | 760 KB | correct |
46 | Correct | 129 ms | 640 KB | correct |
47 | Correct | 58 ms | 512 KB | correct |
48 | Correct | 8 ms | 384 KB | correct |
49 | Correct | 20 ms | 384 KB | correct |
50 | Correct | 58 ms | 508 KB | correct |
51 | Correct | 170 ms | 1016 KB | correct |
52 | Correct | 159 ms | 640 KB | correct |
53 | Correct | 131 ms | 632 KB | correct |
54 | Correct | 184 ms | 760 KB | correct |
55 | Correct | 183 ms | 840 KB | correct |
56 | Correct | 171 ms | 760 KB | correct |
57 | Correct | 164 ms | 716 KB | correct |
58 | Correct | 1 ms | 384 KB | correct |
59 | Correct | 0 ms | 384 KB | correct |
60 | Incorrect | 169 ms | 2296 KB | WA in grader: NO |
61 | Halted | 0 ms | 0 KB | - |