Submission #669287

#TimeUsernameProblemLanguageResultExecution timeMemory
669287manizarePipes (CEOI15_pipes)C++14
10 / 100
1006 ms22428 KiB
#include <bits/stdc++.h> #define all(a) a.begin(),a.end() #define pb push_back #define int long long using namespace std ; const int maxn = 1e5+10 , maxq =5002 , inf = 2e17 + 100 , mod = 1e9 + 7 ; vector <int >G[maxn] ; int par[maxn] , par2[maxn] , p[maxn] , dp[maxn] , mark[maxn] , dis[maxn]; int find(int v){ if(par[v] == v)return v; return par[v] = find(par[v]); } int find2(int v){ if(par2[v] == v)return v; return par2[v] = find2(par2[v]) ; } void dfs(int v){ mark[v] = 1; for(int i = 0 ; i < G[v].size() ; i++){ int u = G[v][i] ; if(mark[u] == 1){ if(dis[u] < (dis[v] - 1)) { dp[v] ++ ; dp[u]--; } continue ; } dis[u] = dis[v] + 1; p[u] = v; dfs(u); dp[v] += dp[u] ; } } signed main(){ ios::sync_with_stdio(0);cin.tie(0); cout.tie(0); int n , m ; cin >> n >> m ; for(int i= 1 ; i <= n ; i++){ par[i] = i ; par2[i] = i ; } for(int i =1 ; i <= m ; i++){ int v , u ; cin >> v >> u ; int v1 = find(v) , u1 = find(u); if(v1 != u1){ G[v].pb(u) ; G[u].pb(v); par[v1] = u1 ; }else if(find2(v) != find2(u)){ par2[find2(v)] = find2(u); G[v].pb(u) ; G[u].pb(v); } } for(int i = 1; i <= n ; i++){ if(mark[i] == 0)dfs(i); } for(int i = 1; i <= n ; i++){ if(dp[i] == 0 && p[i] != 0){ cout << i << " " << p[i] << "\n"; } } }

Compilation message (stderr)

pipes.cpp: In function 'void dfs(long long int)':
pipes.cpp:20:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |  for(int i = 0 ; i < G[v].size() ; i++){
      |                  ~~^~~~~~~~~~~~~
#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...