Submission #1132497

#TimeUsernameProblemLanguageResultExecution timeMemory
1132497KubetiPipes (CEOI15_pipes)C++20
10 / 100
1907 ms98104 KiB
#include <bits/stdc++.h> #define maxn 1<<17 #define pb push_back using namespace std; vector<int> V[maxn],RS[maxn]; int N,M,T[maxn],P[maxn],rs,St[maxn],st; bool f[maxn]; void dfs(int x){ f[x] = 1; St[++st] = x; for(auto y:V[x]) if(P[y]) P[x] = min(P[x],T[y]); else{ int p=st; P[y] = T[y] = T[x] + 1; dfs(y); P[x] = min(P[x],P[y]); if(P[y] >= T[x]){ RS[++rs].pb(x); while(p<st) RS[rs].pb(St[st--]); } } } int main(){ ios_base::sync_with_stdio(0);cin.tie(0); cin >> N >> M; for(int x,y;M--;){ cin >> x >> y; V[x].pb(y); V[y].pb(x); } for(int i = 1; i <= N; i++) { if(f[i]) { continue; } T[i] = P[i] = 1; dfs(i); } while(rs >= 0){ if(RS[rs].size() == 2) { for(auto it : RS[rs]) { cout << it << " "; } cout << '\n'; } rs--; } }
#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...