Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define white 0
- #define grey 1
- #define black 2
- vector<int> adj[123456];
- int visited[123456]= {0};
- int color[123456]= {white};
- int dis[123456]= {0};
- int prev[123456]= {-1};
- int fin[123456]= {-1};
- int dist=0;
- int tim=0;
- int cnt=0;
- void dfs(int x)
- {
- color[x]=grey;
- tim++;
- dis[x]=tim;
- for(int i=0; i<adj[x].size(); i++)
- {
- int v=adj[x][i];
- if(color[v]=white)
- {
- prev[v]=x;
- dfs(v);
- }
- color[x]=black;
- tim++;
- fin[x]=tim;
- }
- }
- int main()
- {
- int e,n,u,v,t,m,mx=0;
- cin>>t;
- for(int i=1; i<=t; i++)
- {
- cin>>n;
- for(int i=1; i<=n; i++)
- {
- cin>>u>>v;
- adj[u].push_back(v);
- }
- for(int i=1; i<=n; i++)
- {
- tim=0;
- dfs(i);
- if(tim>mx){
- mx=tim;
- m=i;
- }
- }
- cout<<"->"<<m<<endl;
- dist=0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement