Submission #527253

#TimeUsernameProblemLanguageResultExecution timeMemory
527253siewjhPipes (CEOI15_pipes)C++17
30 / 100
248 ms16624 KiB
#include <iostream> #include <vector> #include <algorithm> #include <climits> using namespace std; const int MAXN = 10'005; vector<int> adjlist[MAXN]; int tvis[MAXN], lo[MAXN]; int cnt = 0; void dfs(int x, int par) { tvis[x] = lo[x] = cnt++; bool vpar = 0; for (auto nxt : adjlist[x]) { if (nxt == par && !vpar) { vpar = 1; continue; } if (tvis[nxt] != INT_MAX) lo[x] = min(lo[x], tvis[nxt]); else { dfs(nxt, x); lo[x] = min(lo[x], lo[nxt]); if (lo[nxt] > tvis[x]) cout << nxt << ' ' << x << '\n'; } } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int nodes, edges; cin >> nodes >> edges; for (int i = 0; i < edges; i++) { int a, b; cin >> a >> b; adjlist[a].push_back(b); adjlist[b].push_back(a); } for (int i = 1; i <= nodes; i++) tvis[i] = INT_MAX; for (int i = 1; i <= nodes; i++) if (tvis[i] == INT_MAX) dfs(i, -1); return 0; }
#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...
#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...