#include <iostream>
#include <vector>
#include <bitset>
using namespace std;
vector<int> a(50001),sum(50001,-1);
bitset<50001> vis;
int dfs(int u){
if(vis[u])return 1;
vis[u]=1;
sum[u]=1+dfs(a[u]);
vis[u]=0;
return sum[u];
}
int t,n,c=0;
int main(){
cin>>t;
while(c++<t){
cin>>n;
vis.reset();
for(int i=1;i<=n;i++){
int x,y;
cin>>x>>y;
a[x]=y;
sum[x]=0;
}
int ans=0,mx=0;
for(int i=1;i<=n;i++){
if(!sum[i])dfs(i);
if(sum[i]>mx)
mx=sum[i],ans=i;
}
cout<<"Case "<<c<<": "<<ans<<endl;
}
}
#include <vector>
#include <bitset>
using namespace std;
vector<int> a(50001),sum(50001,-1);
bitset<50001> vis;
int dfs(int u){
if(vis[u])return 1;
vis[u]=1;
sum[u]=1+dfs(a[u]);
vis[u]=0;
return sum[u];
}
int t,n,c=0;
int main(){
cin>>t;
while(c++<t){
cin>>n;
vis.reset();
for(int i=1;i<=n;i++){
int x,y;
cin>>x>>y;
a[x]=y;
sum[x]=0;
}
int ans=0,mx=0;
for(int i=1;i<=n;i++){
if(!sum[i])dfs(i);
if(sum[i]>mx)
mx=sum[i],ans=i;
}
cout<<"Case "<<c<<": "<<ans<<endl;
}
}
Comments
Post a Comment