Submission #1212324

#TimeUsernameProblemLanguageResultExecution timeMemory
1212324Double_SlashPipes (CEOI15_pipes)C++20
0 / 100
2686 ms93564 KiB
#include <bits/stdc++.h> using namespace std; int n, m, depth[100001] = {0}, ps[100001] = {0}, par[100001] = {0}; vector<int> adj[100001]; bool seen[100001]; void dfs(int i) { seen[i] = true; for (int j: adj[i]) { if (j == par[i]) continue; if (par[j] == i) par[j] = -1; if (par[j] == -1) continue; if (seen[j]) { if (depth[j] > depth[i]) continue; ps[i]++; ps[j]--; } else { depth[j] = depth[i] + 1; par[j] = i; dfs(j); ps[i] += ps[j]; } } } int main() { cin >> n >> m; for (int i = 0; i < m; ++i) { int a, b; cin >> a >> b; adj[a].emplace_back(b); adj[b].emplace_back(a); } for (int i = 1; i <= n; ++i) { if (not seen[i]) dfs(i); } for (int i = 1; i <= n; ++i) { if (not ps[i] and ~par[i]) cout << i << " " << par[i] << "\n"; } }
#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...