Submission #379769

#TimeUsernameProblemLanguageResultExecution timeMemory
379769alirezasamimi100Pipes (CEOI15_pipes)C++17
20 / 100
1398 ms42132 KiB
#include <bits/stdc++.h> /*#pragma comment(linker, "/stack:200000000") #pragma GCC optimize("Ofast") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")*/ /*#pragma GCC optimize("O2") #pragma GCC optimize("unroll-loops") #pragma GCC target("avx,avx2,sse,sse2,fma")*/ using namespace std; using ll = long long int; #define F first #define S second #define pb push_back #define lc v<<1 #define rc v<<1|1 #define fast_io ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr); const int N=5e5+10,LN=20,M=1e5+10,SQ=450,inf=1e9; const ll INF=1e18; const int MH=1000696969,MOD=1000000007 /*998244353*/; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; using pll=pair<ll,ll>; using pii=pair<int,int>; #define ordered_set tree<ll, null_type,less<ll>, rb_tree_tag,tree_order_statistics_node_update> ll pow(ll x, ll y, ll mod){ ll ans=1; while (y != 0) { if (y & 1) ans = ans * x % mod; y >>= 1; x = x * x % mod; } return ans; } ll n,q,p[2][N],m,dp[N],h[N]; bool f[N]; vector<pll> adj[N]; ll gp(ll c, ll x){ return p[c][x]?p[c][x]=gp(c,p[c][x]):x; } bool uni(ll c, ll v, ll u){ v=gp(c,v); u=gp(c,u); if(v==u) return false; p[c][u]=v; return true; } void dfs(ll v, ll i, ll pr){ f[v]=1; dp[v]=h[v]; for(auto [u,j] : adj[v]){ if(!f[u]) h[u]=h[v]+1,dfs(u,j,v),dp[v]=min(dp[u],dp[v]); } for(auto [u,j] : adj[v]){ if(j!=i) dp[v]=min(dp[v],h[u]); } if(dp[v]==h[v] && pr) cout << v << ' ' << pr << '\n'; } int main(){ fast_io; cin >> n >> q; while(q--){ ll v,u; cin >> v >> u; if(uni(0,v,u) || uni(1,v,u)) adj[v].pb({u,m}),adj[u].pb({v,m++}); } for(ll i=1; i<=n; i++) if(!f[i]) dfs(i,-1,0); 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...