Pagini recente » Cod sursa (job #918815) | Cod sursa (job #2880161) | Cod sursa (job #959923) | Cod sursa (job #2217172) | Cod sursa (job #1132304)
#include <iostream>
#include<stdio.h>
#include<queue>
#include<vector>
using namespace std;
FILE *f,*g;
vector<int> veci[50001];
vector<int>::iterator it;
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_back(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();
it=veci[i].begin();
while(it!=veci[i].end())
{
j=*it;
deg[j]--;
if (deg[j]==0) good.push(j);
it++;
}
}
return 0;
}