Pagini recente » Cod sursa (job #1640939) | Cod sursa (job #2040690) | Cod sursa (job #803489) | Cod sursa (job #1948445) | Cod sursa (job #792169)
Cod sursa(job #792169)
#include <stdio.h>
#include<vector>
#include<string.h>
using namespace std;
//vector<int > v;
#define Max 50011
vector<int>s[Max];
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
int n,m,x,y,pred[Max]={0},q[Max];
vector<int>::iterator it;
scanf("%d %d",&n,&m);
q[0]=0;
//memset(&pred[0],0,(n+1)*sizeof(int));
for(int i=1;i<=m;++i)
{
scanf("%d %d",&x,&y);
s[x].push_back(y);
pred[y]+=1;
}
for(int i=1;i<=n;++i)
{
if(!pred[i])q[++q[0]]=i;
}
for(int i=1;i<=n;++i)
{
x=q[i];
printf("%d ",x);
for(it=s[x].begin();it!=s[x].end();++it)
{
--pred[*it];
if(pred[*it]==0)q[++q[0]]=*it;
}
}
return 0;
}