过了
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<int> go[100001];
int ans[1000001];
int in[1000001];
queue<int> q;
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
int a,b;
cin>>a>>b;
go[a].push_back(b);
in[b]++;
}
for(int i=1;i<=n;i++){
if(in[i]==0){
q.push(i);
ans[i]=1;
}
}
while(!q.empty()){
int f=q.front();
q.pop();
int l=go[f].size();
for(int i=0;i<l;i++){
ans[go[f][i]]=max(ans[go[f][i]],ans[f]+1);
in[go[f][i]]--;
if(in[go[f][i]]==0) q.push(go[f][i]);
}
}
for(int i=1;i<=n;i++){
cout<<ans[i]<<endl;
}
return 0;
}
```
提供代码 供参考
by YouZhouHang @ 2022-12-08 18:47:58