最后一个点WA
#include<bits/stdc++.h>
using namespace std;
vector<int>g[100001];
int n,m,len;
int xl[200001];
int del[100001];
struct du
{
int rd,cd;
}d[100001];
void dfs(int i)
{
for(int j=del[i];j<g[i].size();j=del[i])
{
del[i]=j+1;
dfs(g[i][j]);
}
xl[++len]=i;
}
int main()
{
int i,u,v;
cin>>n>>m;
for(i=1;i<=m;i++)
{
scanf("%d%d",&u,&v);
d[u].cd++;
d[v].rd++;
g[u].push_back(v);
}
for(i=1;i<=n;i++)
{
sort(g[i].begin(),g[i].end());
}
int k=0,st=0;
for(i=1;i<=n;i++)
{
if(d[i].cd!=d[i].rd)
{
k++;
if(d[i].cd-d[i].rd==1)
{
st=i;
}
}
}
if(k==0)
{
st=1;
}
if(k==2||k==0&&st>0)
{
dfs(st);
for(i=len;i>0;i--)
{
printf("%d ",xl[i]);
}
}
else
{
cout<<"No";
}
return 0;
}