#include<iostream>
#include<stdio.h>
#include<vector>
using namespace std;
const int maxn=100010;
int N,M,d[maxn];
vector<int> g[maxn];
int mp(int i){
if(d[i]) return d[i];
d[i]=i;
for(int j=0;j<g[i].size();j++){
d[i]=max(d[i],mp(g[i][j]));
}
return d[i];
}
int main(){
scanf("%d%d",&N,&M);
for(int k=0;k<M;k++){
int u,v;
scanf("%d%d",&u,&v);
g[u].push_back(v);
}
for(int k=1;k<=N;k++){
printf("%d ",mp(k));
}
return 0;
}
正向,错误类型是WA,为啥耶? 5679过了,前面数据规模小的测试点反而没过,求Dalao指点哇!