Pagini recente » Cod sursa (job #2800259) | Cod sursa (job #697145) | Cod sursa (job #911028) | Cod sursa (job #48150) | Cod sursa (job #1971332)
#include <iostream>
#include <cstdio>
#include <vector>
#define nmax 50005
using namespace std;
vector < int > graf[nmax];
int grad[nmax],n,m;
int sol[nmax],k;
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d%d",&n,&m);
for (int i=1;i<=m;++i)
{
int x,y;
scanf("%d%d",&x,&y);
graf[x].push_back(y);
grad[y]++;
}
for (int i=1;i<=n;++i)
if (!grad[i])
sol[++k]=i;
for (int i=1;i<=k;++i)
{
for (vector < int > :: iterator it = graf[sol[i]].begin();it!=graf[sol[i]].end();++it)
{
--grad[*it];
if (!grad[*it])
sol[++k]=*it;
}
}
for (int i=1;i<=k;++i)
printf("%d ",sol[i]);
return 0;
}