代码如下:
#include<iostream>
using namespace std;
int b[5005][5005];
int bc[5005];
int n,m;
int v[5005];
void dfs(int p){
v[p]=1;
for(int i=1; i<=bc[p]; i++)
dfs(b[p][i]);
return;
}
int main()
{
cin>>n>>m;
for(int i=1; i<=m; i++){
int u,v;
cin>>u>>v;
b[u][++bc[u]]=v;
}
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++)
v[j]=0;
dfs(i);
int ans=0;
for(int i=1; i<=n; i++)
if(v[i]==1)
ans=max(ans,i);
cout<<ans<<" ";
}
return 0;
}
评测记录