Submission #527337

#TimeUsernameProblemLanguageResultExecution timeMemory
527337jamielimPipes (CEOI15_pipes)C++14
10 / 100
2032 ms65540 KiB
#include <bits/stdc++.h>
using namespace std;

#define fi first
#define se second
#define mp make_pair
#define pb emplace_back
#define ALL(x) x.begin(),x.end()
#define SZ(x) (int)x.size()
typedef long long ll;
typedef pair<int,int> ii;
typedef pair<ii,ii> i4;
const int MOD=1000000007;
const int INF=1012345678;
const ll LLINF=1012345678012345678LL;
const double PI=3.1415926536;
const double EPS=1e-14;

const int MAXN=100001;
int n,m;
vector<int> adj[MAXN];
vector<ii> ans;

int par[MAXN];
int dep[MAXN];
int low[MAXN];
int ctr=1;

void dfs(int x){
	dep[x]=low[x]=ctr++;
	for(int i:adj[x]){
		if(dep[i]==0){ // not yet visited
			par[i]=x;
			dfs(i);
			if(low[i]>dep[x])ans.pb(i,x);
			low[x]=min(low[x],low[i]);
		}else if(i!=par[x])low[x]=min(low[x],dep[i]);
	}
}

int main(){
	scanf("%d%d",&n,&m);
	int a,b;
	for(int i=0;i<m;i++){
		scanf("%d%d",&a,&b);
		adj[a].pb(b);adj[b].pb(a);
	}
	for(int i=1;i<=n;i++)if(dep[i]==0)dfs(i);
	for(ii i:ans)printf("%d %d\n",i.fi,i.se);
}

Compilation message (stderr)

pipes.cpp: In function 'int main()':
pipes.cpp:42:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   42 |  scanf("%d%d",&n,&m);
      |  ~~~~~^~~~~~~~~~~~~~
pipes.cpp:45:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   45 |   scanf("%d%d",&a,&b);
      |   ~~~~~^~~~~~~~~~~~~~
#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...