Submission #527257

#TimeUsernameProblemLanguageResultExecution timeMemory
527257ecxxPipes (CEOI15_pipes)C++17
30 / 100
3544 ms65540 KiB
#include <bits/stdc++.h> using namespace std; int N; const int MAXN = 100005; uint16_t depth[MAXN] = {(uint16_t)0}; uint16_t low[MAXN] = {(uint16_t)0}; vector<int> AL[MAXN]; void AP(int i, uint16_t d, int pa) { depth[i] = d; low[i] = d; uint16_t paedges = 0; for (int ch : AL[i]) { if (ch==pa) { paedges++; continue; } if (depth[ch] != UINT16_MAX) { low[i] = min(low[i], depth[ch]); } else { AP(ch, d+1, i); low[i] = min(low[i], low[ch]); } } if (pa==-1) return; if (low[i] > depth[pa] && paedges == 1) { cout << i+1 << " " << pa+1 << "\n"; } } int main() { int N, M, a, b; cin >> N >> M; for (int i = 0; i < M; i++) { cin >> a >> b; a--;b--; AL[a].push_back(b); AL[b].push_back(a); } for (int i = 0; i < N; i++) { depth[i] = UINT16_MAX; } for (int i = 0; i < N; i++) { if (depth[i] == UINT16_MAX) AP(i,(uint16_t)0,-1); } }
#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...