Pagini recente » Cod sursa (job #903700) | Cod sursa (job #2325167) | Cod sursa (job #602377) | Cod sursa (job #399216) | Cod sursa (job #1132282)
#include <iostream>
#include<stdio.h>
#include<queue>
using namespace std;
FILE *f,*g;
queue<int> veci[50001];
queue<int> good;
int deg[50001];
int main()
{
int i,j,n,m,k;
f=fopen("sortaret.in","r");
g=fopen("sortaret.out","w");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=m;i++)
{
fscanf(f,"%d%d",&k,&j);
deg[j]++;
veci[k].push(j);
}
for(i=1;i<=n;i++) if (deg[i]==0) good.push(i);
while(!good.empty())
{
i=good.front();
fprintf(g,"%d ",i);
good.pop();
while(!veci[i].empty())
{
j=veci[i].front();
deg[j]--;
if (deg[j]==0) good.push(j);
veci[i].pop();
}
}
return 0;
}