Submission #103594

#TimeUsernameProblemLanguageResultExecution timeMemory
103594luciocfSenior Postmen (BOI14_postmen)C++14
38 / 100
1078 ms13304 KiB
#include <bits/stdc++.h> #define scan(x) do{while((x=getchar())<'0'); for(x-='0'; '0'<=(_=getchar()); x=(x<<3)+(x<<1)+_-'0');}while(0) char _; using namespace std; const int maxn = 1e5+10; typedef pair<int, int> pii; bool markEdge[maxn], mark[maxn]; vector<pii> grafo[maxn]; stack<int> stk; void dfs(int u) { if (mark[u]) { while (true) { int v = stk.top(); stk.pop(); mark[v] = 0; if (v == u) { printf("%d\n", v); break; } printf("%d ", v); } } for (auto v: grafo[u]) { if (!markEdge[v.second]) { mark[u] = 1; stk.push(u); markEdge[v.second] = 1; dfs(v.first); } } } int main(void) { int n, m; scan(n); scan(m); for (int i = 1; i <= m; i++) { int u, v; scan(u); scan(v); grafo[u].push_back({v, i}); grafo[v].push_back({u, i}); } dfs(1); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...