Submission #675610

#TimeUsernameProblemLanguageResultExecution timeMemory
675610penguin133Pipes (CEOI15_pipes)C++17
0 / 100
265 ms65536 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define int long long
#define pi pair<int, int>
#define pii pair<int, pi>
#define fi first
#define se second
 
int ret[100005], dep[100005], vis[100005];
 
vector<pi>v[100005];
int n, m;
 
inline int read() {
    int v = 0;
    char ch = getchar_unlocked();
    while ((ch & 16) == 0) ch = getchar_unlocked();
    while (ch & 16){
        v = (v * 10) + (ch & 15);
        ch = getchar_unlocked();
    }
    return v;
}
vector<pi>ans;
 
void dfs(int x, int p, int d){
	if(vis[x])return;
	vis[x] = 1;
	dep[x] = d;
	ret[x] = dep[x];
	for(auto [i, j] : v[x]){
		if(j == p)continue;
		if(vis[i]){
			ret[x] = min(ret[x], dep[i]);
			continue;
		}
		dfs(i, j, d + 1);
		if(ret[i] > dep[x])ans.push_back({i, x});
		ret[x] = min(ret[x], ret[i]);
	}
}

int32_t main(){
	//ios::sync_with_stdio(0);cin.tie(0);
	n = read(), m = read();
	for(int i=1;i<=m;i++){
		int x = read(), y = read();
		v[x].push_back({y, i});
		v[y].push_back({x, i});
	}
	
	for(int i=1;i<=n;i++)if(!vis[i])dfs(i, -1, 1);
}
#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...