Submission #667498

#TimeUsernameProblemLanguageResultExecution timeMemory
667498AlishPipes (CEOI15_pipes)C++14
30 / 100
5082 ms6948 KiB
#include <bits/stdc++.h> using namespace std; typedef long long int ll; typedef long double ld; #define F first #define S second #define pb push_back #define endl '\n' #define Mp make_pair #define all(x) x.begin(), x.end() #define debug(x) cerr << #x << " = " << x << endl #define set_dec(x) cout << fixed << setprecision(x); #define fast_io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define file_io freopen("in.txt" , "r+" , stdin) ; freopen("out.txt" , "w+" , stdout); ll mod = 1e9+7; ll power(ll a, ll b) { return (!b ? 1 : (b & 1 ? a * power(a * a % mod, b / 2) % mod : power(a * a % mod, b / 2) % mod)); } const int N= 100023; vector<int> g[N] ; int mn[N] , h[N] , par1[N] , par2[N] , vis[N]; int getPar1(int v){ return (par1[v]==-1)?v: getPar1(par1[v]); } int getPar2(int v){ return (par2[v]==-1)? v: getPar2(par2[v]); } bool Union1(int v, int u){ v= getPar1(v); u = getPar1(u); if(u==v) return 0; par1[u]=v; return 1; } bool Union2(int v, int u){ v= getPar2(v); u = getPar2(u); if(u==v) return 0; par2[u]=v; return 1; } void dfs(int v, int p ){ vis[v]=1; mn[v]=h[v]; int fuck = 0; for(int u: g[v]){ if(u==p && !fuck ){fuck=1; continue;} if(!vis[u]){ h[u]= h[v]+1; dfs(u,v); mn[v]= min (mn[v], mn[u]); } else{ mn[v]= min(mn[v] , h[u]); } } if(p && mn[v]==h[v]) cout<<p<<" "<<v<<endl; } int n , m; int i; int main(){ fast_io cin>>n>>m; for(i=1; i<=n; i++){ par1[i]=-1; par2[i]=-1; } for(i=1 ;i<=m; i++){ int u ,v; cin>>v>>u; if(Union1(v,u)){ g[v].pb(u); g[u].pb(v); } else if(Union2(u,v)){ g[v].pb(u); g[u].pb(v); } } for(i=1; i<=n; i++) if(!vis[i]) dfs(i,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...