#include <cstdio>
#include <iostream>
#include <cassert>
#include <vector>
#include <cstdlib>
#include <string>
using namespace std;
int count_common_roads(const std::vector<int>& r);
void dfs(int parent, int now, std::vector<int>& visit, std::vector<vector<int>>& edgeL) {
visit[now]=1;
for(int elem: edgeL[now])
if (elem!=parent && !visit[elem])
dfs(now,elem,visit,edgeL);
return;
}
bool isTree(std::vector<int>& r, std::vector<int>& u, std::vector<int>& v) {
int n = r.size()+1;
std::vector<vector<int>> edgeL(n);
for(int i=0; i<n-1; i++) {
int s = u[r[i]], e = v[r[i]];
edgeL[s].push_back(e);
edgeL[e].push_back(s);
}
vector<int> visit(n,0);
dfs(-1,u[r[0]],visit,edgeL);
for(int i=0; i<n; i++)
if(!visit[i]) return false;
return true;
}
bool selectEdges(int cnt, int start, std::vector<int>& r, std::vector<int>& u, std::vector<int>& v){
int n = r.size()+1, m = u.size();
if (cnt == n-1){
if(isTree(r,u,v) && count_common_roads(r)== n-1) return true;
else return false;
}
for(int i=start; i<m; i++){
r[cnt] = i;
if (selectEdges(cnt+1,i+1,r,u,v)) return true;
}
return false;
}
std::vector<int> subtask1(int n, std::vector<int>& u, std::vector<int>& v) {
std::vector<int> r(n-1), zero(n-1,-1);
if (selectEdges(0,0,r,u,v)) return r;
else return zero;
}
std::vector<int> find_roads(int n, std::vector<int> u, std::vector<int> v) {
// if (isSubtask1(n))
return subtask1(n,u,v);
}
Compilation message
simurgh.cpp: In function 'void dfs(int, int, std::vector<int>&, std::vector<std::vector<int> >&)':
simurgh.cpp:14:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
14 | for(int elem: edgeL[now])
| ^~~
simurgh.cpp:17:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
17 | return;
| ^~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
21 ms |
344 KB |
correct |
2 |
Correct |
5 ms |
348 KB |
correct |
3 |
Correct |
14 ms |
428 KB |
correct |
4 |
Correct |
1 ms |
344 KB |
correct |
5 |
Correct |
1 ms |
600 KB |
correct |
6 |
Correct |
2 ms |
344 KB |
correct |
7 |
Correct |
1 ms |
348 KB |
correct |
8 |
Correct |
1 ms |
344 KB |
correct |
9 |
Correct |
1 ms |
348 KB |
correct |
10 |
Correct |
1 ms |
348 KB |
correct |
11 |
Correct |
1 ms |
344 KB |
correct |
12 |
Correct |
1 ms |
344 KB |
correct |
13 |
Correct |
15 ms |
348 KB |
correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
21 ms |
344 KB |
correct |
2 |
Correct |
5 ms |
348 KB |
correct |
3 |
Correct |
14 ms |
428 KB |
correct |
4 |
Correct |
1 ms |
344 KB |
correct |
5 |
Correct |
1 ms |
600 KB |
correct |
6 |
Correct |
2 ms |
344 KB |
correct |
7 |
Correct |
1 ms |
348 KB |
correct |
8 |
Correct |
1 ms |
344 KB |
correct |
9 |
Correct |
1 ms |
348 KB |
correct |
10 |
Correct |
1 ms |
348 KB |
correct |
11 |
Correct |
1 ms |
344 KB |
correct |
12 |
Correct |
1 ms |
344 KB |
correct |
13 |
Correct |
15 ms |
348 KB |
correct |
14 |
Execution timed out |
3065 ms |
348 KB |
Time limit exceeded |
15 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
21 ms |
344 KB |
correct |
2 |
Correct |
5 ms |
348 KB |
correct |
3 |
Correct |
14 ms |
428 KB |
correct |
4 |
Correct |
1 ms |
344 KB |
correct |
5 |
Correct |
1 ms |
600 KB |
correct |
6 |
Correct |
2 ms |
344 KB |
correct |
7 |
Correct |
1 ms |
348 KB |
correct |
8 |
Correct |
1 ms |
344 KB |
correct |
9 |
Correct |
1 ms |
348 KB |
correct |
10 |
Correct |
1 ms |
348 KB |
correct |
11 |
Correct |
1 ms |
344 KB |
correct |
12 |
Correct |
1 ms |
344 KB |
correct |
13 |
Correct |
15 ms |
348 KB |
correct |
14 |
Execution timed out |
3065 ms |
348 KB |
Time limit exceeded |
15 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
correct |
2 |
Incorrect |
133 ms |
408 KB |
WA in grader: NO |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
21 ms |
344 KB |
correct |
2 |
Correct |
5 ms |
348 KB |
correct |
3 |
Correct |
14 ms |
428 KB |
correct |
4 |
Correct |
1 ms |
344 KB |
correct |
5 |
Correct |
1 ms |
600 KB |
correct |
6 |
Correct |
2 ms |
344 KB |
correct |
7 |
Correct |
1 ms |
348 KB |
correct |
8 |
Correct |
1 ms |
344 KB |
correct |
9 |
Correct |
1 ms |
348 KB |
correct |
10 |
Correct |
1 ms |
348 KB |
correct |
11 |
Correct |
1 ms |
344 KB |
correct |
12 |
Correct |
1 ms |
344 KB |
correct |
13 |
Correct |
15 ms |
348 KB |
correct |
14 |
Execution timed out |
3065 ms |
348 KB |
Time limit exceeded |
15 |
Halted |
0 ms |
0 KB |
- |