0tps求调,哪位巨佬能来指点一下

#include<bits/stdc++.h>
using namespace std;
vector<int> e[100000];
int n,m,cnt=0,temp1,temp2,ans=0;
bool vis[100000],flag=false;
int input[100000];
int order[100000];
int main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
for(int i=0;i<m;i++)
{
cin>>temp1>>temp2;
input[temp2]++;
e[temp1].push_back(temp2);
}
queue<int> q;
for(int i=1;i<=n;i++)
{
if(input[i]==0)
{
q.push(i);
vis[i]=true;
cnt++;
order[i]=cnt;
}
}
while(!q.empty())
{
if(q.size()>1)
{
flag=true;
}
int t=q.front();
q.pop();
for(int i=0;i<int(e[t].size());i++)
{
input[e[t][i]]--;
if(input[e[t][i]]==0 && !vis[e[t][i]])
{
q.push(e[t][i]);
vis[e[t][i]]=true;
cnt++;
order[e[t][i]]=cnt;
}
}
}
for(int i=1;i<=n;i++)
{
cout<<order[i]<<endl;
}
cout<<flag;
return 0;
}