제출 #83747

#제출 시각아이디문제언어결과실행 시간메모리
83747WLZSimurgh (IOI17_simurgh)C++17
13 / 100
3040 ms776 KiB
#include "simurgh.h" #include <bits/stdc++.h> using namespace std; vector<int> was; void dfs(int u, const vector< vector<int> >& g) { was[u] = 1; for (auto& v : g[u]) { if (!was[v]) { dfs(v, g); } } } std::vector<int> find_roads(int n, std::vector<int> u, std::vector<int> v) { int m = (int) u.size(); vector<int> perm(m, 0); for (int i = 0; i < n - 1; i++) { perm[i] = 1; } do { vector<int> q; vector< vector<int> > g(n); was.assign(n, 0); for (int i = 0; i < m; i++) { if (perm[i]) { q.push_back(i); g[u[i]].push_back(v[i]); g[v[i]].push_back(u[i]); } } int cc = 0; for (int i = 0; i < n; i++) { if (!was[i]) { dfs(i, g); cc++; } } if (cc > 1) { continue; } int res = count_common_roads(q); if (res == n - 1) { return q; } } while (prev_permutation(perm.begin(), perm.end())); return {}; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...