Submission #540643

#TimeUsernameProblemLanguageResultExecution timeMemory
540643Vladth11Pipes (CEOI15_pipes)C++14
20 / 100
1780 ms65536 KiB
#include <bits/stdc++.h> #pragma GCC optimize("Ofast") #define debug(x) cerr << #x << " " << x << "\n" #define debugs(x) cerr << #x << " " << x << " " using namespace std; typedef long long ll; typedef pair <int, int> pii; typedef pair <long double, pii> muchie; const ll NMAX = 200001; const ll VMAX = 1000001; const ll INF = (1LL << 60); const ll MOD = 1000000007; const ll BLOCK = 1000000; const ll nr_of_bits = 16; vector <int> v[NMAX]; int root; int dp[NMAX], lvl[NMAX]; void DFS(int node, int p){ lvl[node] = lvl[p] + 1; for(auto x : v[node]){ if(lvl[x] == 0){ DFS(x, node); dp[node] += dp[x]; }else if(lvl[x] > lvl[node]){ dp[node]--; }else{ dp[node]++; } } if(node != root){ dp[node]--; } if(dp[node] == 0 && node != root){ cout << node << " " << p << "\n"; } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m, i; cin >> n >> m; for(i = 1; i <= m; i++){ int a, b; cin >> a >> b; v[a].push_back(b); v[b].push_back(a); } for(i = 1; i <= n; i++){ if(!lvl[i]){ root = i; DFS(root, 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...