Submission #535908

#TimeUsernameProblemLanguageResultExecution timeMemory
535908sliviuSenior Postmen (BOI14_postmen)C++17
100 / 100
415 ms43800 KiB
#include <bits/stdc++.h> using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); int n, m, x, y; cin >> n >> m; vector<vector<pair<int, int>>> G(n + 1); vector<int> seen(m); for (int i = 0; i < m; ++i) { cin >> x >> y; G[x].emplace_back(y, i); G[y].emplace_back(x, i); } stack<int> cur; cur.emplace(1); vector<int> ans; while (!cur.empty()) { int top = cur.top(); if (G[top].empty()) { ans.emplace_back(top); cur.pop(); } else { if (seen[G[top].back().second]) { G[top].pop_back(); continue; } auto [node, e] = G[top].back(); cur.emplace(node); seen[e] = 1; G[top].pop_back(); } } seen.assign(n + 1, 0); for (auto x : ans) if (!seen[x]) { seen[x] = 1; cur.emplace(x); } else { cout << x << ' '; while (cur.top() != x) { cout << cur.top() << ' '; seen[cur.top()] = 0; cur.pop(); } cout << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...