Submission #591470

#TimeUsernameProblemLanguageResultExecution timeMemory
591470andrei_boacaPipes (CEOI15_pipes)C++14
50 / 100
4476 ms65536 KiB
#include <bits/stdc++.h> using namespace std; typedef pair<int,int> pii; int n,m; vector<vector<short>> muchii; bool use[100005]; int topar[100005],par[100005]; int niv[100005],nivmin[100005]; void dfs(int nod) { use[nod]=1; nivmin[nod]=niv[nod]; for(int i:muchii[nod]) { int node=i; if(node==par[nod]) continue; if(!use[node]) { par[node]=nod; niv[node]=niv[nod]+1; dfs(node); nivmin[nod]=min(nivmin[nod],nivmin[node]); } else nivmin[nod]=min(nivmin[nod],niv[node]); } int cnt=0; if(nivmin[nod]==niv[nod]&&par[nod]!=0) { for(int i:muchii[nod]) if(i==par[nod]) cnt++; if(cnt==1) cout<<par[nod]<<' '<<nod<<'\n'; } } int main() { cin>>n>>m; muchii.resize(n+1); for(int i=1;i<=m;i++) { int a,b; cin>>a>>b; muchii[a].push_back(b); muchii[b].push_back(a); } for(int i=1;i<=n;i++) sort(muchii[i].begin(),muchii[i].end()); for(int i=1;i<=n;i++) if(!use[i]) { niv[i]=1; dfs(i); } 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...