Submission #1269979

#TimeUsernameProblemLanguageResultExecution timeMemory
1269979rtri어르신 집배원 (BOI14_postmen)C++20
0 / 100
77 ms2888 KiB
#include <bits/stdc++.h> using namespace std; vector<bool> used; vector<vector<pair<int, int>>> adj; vector<bool> vis; vector<int> sol; bool dfs(int u, int start = -1, int p = -1) { if (u == start) { return true; } if (start == -1) start = u; if (vis[u]) return false; vis[u] = 1; for (auto [v, edg] : adj[u]) { if (!used[edg] && v != p) { if (dfs(v, start, u)) { used[edg] = 1; sol.push_back(u); return true; } } } return false; } int main() { int n, m; cin >> n >> m; adj.resize(n); used.resize(m); for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; u--; v--; adj[u].push_back({v, i}); adj[v].push_back({u, i}); } vis.resize(n); vector<vector<int>> sols; for (int i = 0; i < n; i++) { fill(vis.begin(), vis.end(), false); if (dfs(i)) { reverse(sol.begin(), sol.end()); sols.push_back(sol); sol.clear(); } } for (auto sol : sols) { for (int idx : sol) cout << idx + 1 << " "; cout << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...