Pagini recente » Cod sursa (job #2488566) | Cod sursa (job #2686447) | Cod sursa (job #2214131) | Cod sursa (job #1082868) | Cod sursa (job #252100)
Cod sursa(job #252100)
#include<stdio.h>
using namespace std;
int a[2][100001],st[50001],c[50001],o,i,j,n,m,k,deg[50001],q;
int main(void){
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d%d",&n,&m);
k=1;
for(o=1;o<=m;o++)
{ scanf("%d%d",&i,&j);
a[0][k]=j;
a[1][k]=st[i];
st[i]=k;
k++;
deg[j]++;
}
k=0;
for(i=1;i<=n;i++)
if(deg[i]==0)
c[++k]=i;
for(i=1;i<=n;i++)
{ q=c[i];
j=st[c[i]];
while(a[1][j]!=0)
{ deg[a[0][j]]--;
if(deg[a[0][j]]==0)
c[++k]=a[0][j];
j=a[1][j];
}
deg[a[0][j]]--;
if(deg[a[0][j]]==0)
c[++k]=a[0][j];
}
for(i=1;i<=n;i++)
printf("%d ",c[i]);
return 0;
}