Submission #397303

#TimeUsernameProblemLanguageResultExecution timeMemory
397303BitmaskingPipes (CEOI15_pipes)C++14
0 / 100
1014 ms65540 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; using namespace std; #define f(i,a,b) for( ll i = a; i < b ; i++ ) #define af(i,a,b) for( ll i = a; i >= b ; i--) #define rep(i,a,b,k) for(ll i = a; i < b ; i+= k ) #define arep(i,a,b,k) for( ll i = a; i >= b ; i-= k) #define ones(ini) (ll) __builtin_popcountll(x) #define todo(y,val) all_of(all(y),[&val](ll x) {return (x == ((ll)val));}) #define nada(y,val) none_of(all(y),[&val](ll x) {return (x == ((ll)val));}) #define algu(y,val) any_of(all(y),[&val](ll x) {return (x == ((ll)val));}) #define cuantos(a,x) count(all(a),x) #define fs first #define sc second #define pb push_back #define po pop_back #define sz(a) (ll) a.size() #define all(a) a.begin(), a.end() #define sor(a) sort( a.begin(), a.end() ) #define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define ller ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr) #define watch(x) cout << (#x) << " is " << (x) <<"\n" #define test ll deftestcases;cin>>deftestcases;while(deftestcases--) #define PI acos(-1) using namespace std; typedef long long ll; typedef long double ld; typedef pair<ll,ll> ii; typedef vector<ll> vi; typedef vector<ii> vii; template<class T> using ordered_set =tree<T, null_type, less<T>, rb_tree_tag,tree_order_statistics_node_update> ; const ll inf = 2e18; const ll mod = 1e9+7; const ll MAX = 2e5+10; vi adj[MAX]; bool vis[MAX]; ll tin[MAX],low[MAX]; vii ans; ll timer = 0; void is_bridge(ll u,ll v){ ans.pb({u,v}); } void dfs(ll u,ll par = -1){ vis[u] = 1; tin[u] = low[u] = timer++; for(auto v : adj[u]){ if(v == par) continue; if(vis[v]) low[u] = min(low[u],tin[v]); else{ dfs(v,u); if(low[v] >tin[u]) is_bridge(u,v); low[u] = min(low[u],low[v]); } } } void init_bridges(ll n,ll m){ timer = 0; f(i,0,n+1){ tin[i]=low[i]=-1; } f(i,0,m){ ll u,v;cin>>u>>v; adj[u].pb(v); adj[v].pb(u); } f(i,0,n){ if(!vis[i]) dfs(i); } } void print_bridges(){ for(auto it : ans){ cout<<it.fs<<" "<<it.sc<<"\n"; } } int main(){ fastio; timer = 0; ll n,m;cin>>n>>m; init_bridges(n,m); print_bridges(); 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...