我的代码:
#include <bits/stdc++.h>
using namespace std;
int n,m,maxa;bool vis[100005];
vector <int> edge[100005];
queue <int> q;
void dfs(int u){
maxa = max(maxa,u);
vis[u] = 1;
for (int i = 0;i < edge[u].size();i++){
int v = edge[u][i];
if (!vis[v]){
dfs(v);
}
}
}
int main(){
cin >> n >> m;
int x,y,w;
while (m--){
cin >> x >> y >> w;
edge[x].push_back(y);
}
for (int i = 1;i <= n;i++){
dfs(i);
memset(vis,0,sizeof(vis));
cout << maxa << " ";
maxa = 0;
}
return 0;
}