Submission #899294

#TimeUsernameProblemLanguageResultExecution timeMemory
899294selmahbnSenior Postmen (BOI14_postmen)C++17
55 / 100
611 ms76976 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(); cout.tie(); int n, m; cin >> n >> m; vector<set<int>> adj(n); for (int i = 0; i < m; i++) { int a, b; cin >> a >> b; a--; b--; adj[a].insert(b); adj[b].insert(a); } stack<int> s; int visited[n] = {}; for (int i = 0; i < n; i++) { if (adj[i].empty()) continue; s.push(i); while (!s.empty()) { int current = s.top(); visited[current] = 1; if (!adj[current].empty()) { auto it = adj[current].begin(); int neigh = *it; if (visited[neigh] == 1) { cout << neigh+1 << " "; while (s.top() != neigh) { cout << s.top()+1 << " "; visited[s.top()] = 0; s.pop(); } cout << endl; } else s.push(neigh); adj[current].erase(it); adj[neigh].erase(current); } else { s.pop(); visited[current] = 0; } } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...