Pagini recente » Cod sursa (job #2781518) | Cod sursa (job #1922365) | Cod sursa (job #631593) | Cod sursa (job #2624071) | Cod sursa (job #881619)
Cod sursa(job #881619)
#include<stdio.h>
#include<vector>
using namespace std;
vector<int>v[50001];
int grad[50001],qe[50001];
void solve()
{ int i,nod;
vector<int>::iterator it;
for(i=1;i<=n;i++)
if(grad(i)==0)
qe[++qe[0]]=i;
for(i=1;i<=n;i++)
{ nod=q[i];
for(it=v[nod].begin();it!=v[nod].end();++it)
{
grad[*it]--;
if(grad[*it]==0)
qe[++qe[0]]= *it;
}
}
}
int main()
{int i,a,b,m,n;
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++){
scanf("%d%d",&a,&b);
v[a].push_back(b);
grad[b]++;
}
solve();
for(i=1;i<=n;i++)
printf("%d ",q[i]);
return 0;
}