제출 #550208

#제출 시각아이디문제언어결과실행 시간메모리
550208leakedPipes (CEOI15_pipes)C++17
100 / 100
1130 ms13920 KiB
#include <bits/stdc++.h> #define f first #define s second #define m_p make_pair #define vec vector #define pb push_back #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() #define pw(x) (1LL<<(x)) #define sz(x) (int)(x).size() using namespace std; typedef long long ll; typedef pair<int,int> pii; template<class T> bool umin(T &a,const T &b){return (a>b?a=b,1:0);} template<class T> bool umax(T &a,const T &b){return (a<b?a=b,1:0);} const int N=1e5; const int M=(N-1)*2; int* g[N]; int ii[M],ij[M],e; int siz[N],x[N],y[N],tt=2; int get(int *p,int v){ return (p[v]<0?v:p[v]=get(p,p[v])); } bool mg(int *p,int v,int u){ v=get(p,v);u=get(p,u); if(v==u) return 0; if(p[v]<p[u]) swap(v,u); p[u]=v;--p[v]; return 1; } void dfs(int v,int p){ x[v]=y[v]=tt++; int j,u; while(siz[v]--){ j=g[v][siz[v]]; u=ii[j]^ij[j]^v; if(j==p) continue; if(x[u]) x[v]=(x[v]<y[u]?x[v]:y[u]); else{ dfs(u,j); x[v]=(x[v]<x[u]?x[v]:x[u]); // cerr<<v<<' '<<u<<' '<< if(x[u]>y[v]){ cout<<v+1<<' '<<u+1<<'\n'; } } } } signed main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); int n,m; int v,u; cin>>n>>m; fill(x,x+N,-1);fill(y,y+N,-1); for(int i=0;i<m;i++){ cin>>v>>u;--v;--u; if(e!=2*(n-1) && (mg(x,v,u) || mg(y,v,u))){ ii[e]=v;ij[e++]=u; ++siz[v];++siz[u]; } } fill(x,x+N,0);fill(y,y+N,0); for(int i=0;i<n;i++) g[i]=new int[siz[i]],siz[i]=0; for(int i=0;i<e;i++) g[ii[i]][siz[ii[i]]++]=i,g[ij[i]][siz[ij[i]]++]=i; for(int i=0;i<n;i++){ if(!x[i]) dfs(i,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...