Pagini recente » Cod sursa (job #1506735) | Cod sursa (job #1830053) | Cod sursa (job #1099117) | Cod sursa (job #954038) | Cod sursa (job #1612421)
#include <cstdio>
#include <vector>
#define NMAX 50001
using namespace std;
int grad[NMAX], q[NMAX], i, j, n, m;
vector <int> G[NMAX];
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d %d",&n, &m);
for(i=1; i<=m; i++)
{
int nod1,nod2;
scanf("%d %d",&nod1, &nod2);
G[nod1].push_back(nod2);
grad[nod2]++;
}
for(i=1; i<=n; i++) if(grad[i]==0) q[++q[0]]=i;
for(i=1; i<=n; i++)
{
int vf=q[i];
int k=G[vf].size();
for(j=0; j<k; j++)
{
grad[G[vf][j]]--;
if(!grad[G[vf][j]]) q[++q[0]]=G[vf][j];
}
}
for(i=1; i<=n; i++) printf("%d ",q[i]);
}