Submission #475443

#TimeUsernameProblemLanguageResultExecution timeMemory
475443MohamedAhmed04Potemkin cycle (CEOI15_indcyc)C++14
20 / 100
19 ms2084 KiB
#include <bits/stdc++.h> using namespace std ; const int MAX = 1000 + 10 ; int arr[MAX] ; int n , m ; vector< vector<int> >adj(MAX) ; int vis[MAX] , dep[MAX] , P[MAX] ; void dfs(int node , int Max) { vis[node] = 1 ; int node2 = -1 ; for(auto &child : adj[node]) { if(vis[child] && child != P[node]) { if(dep[child] > dep[node]) continue ; if(dep[child] > Max) Max = dep[child] , node2 = child ; } } if(node2 != -1 && dep[node] - dep[node2] + 1 >= 4) { while(node != node2) { cout<<node<<" " ; node = P[node] ; } cout<<node2<<"\n" ; exit(0) ; } for(auto &child : adj[node]) { if(vis[child]) continue ; P[child] = node , dep[child] = dep[node] + 1 ; dfs(child , Max) ; } } int main() { ios_base::sync_with_stdio(0) ; cin.tie(0) ; cin>>n>>m ; for(int i = 0 ; i < m ; ++i) { int x , y ; cin>>x>>y ; adj[x].push_back(y) ; adj[y].push_back(x) ; } for(int i = 1 ; i <= n ; ++i) { if(vis[i]) continue ; dfs(i , -1) ; } return cout<<"no\n" , 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...