Pagini recente » Cod sursa (job #130494) | Cod sursa (job #381429) | Cod sursa (job #2984727) | Cod sursa (job #2989635) | Cod sursa (job #1303512)
//#include <iostream>
#include <cstdio>
#include <queue>
#include <vector>
#define nmax 50001
using namespace std;
FILE *f=fopen("sortaret.in","r"),*g=fopen("sortaret.out","w");
int gi[nmax];
int main()
{
vector <int> l[nmax];
queue <int> c;
int i,j,n,m,x,y;
fscanf(f,"%d %d",&n,&m);
for(i=1;i<=m;i++)
{
fscanf(f,"%d %d",&x,&y);
l[x].push_back(y);
gi[y]++;
}
fclose(f);
for(i=1;i<=n;i++)
if(!gi[i])
c.push(i);
while(!c.empty())
{
x=c.front();
c.pop();
fprintf(g,"%d ",x);
for(i=0;i<l[x].size();i++)
{
gi[l[x][i]]--;
if(!gi[l[x][i]])
c.push(l[x][i]);
}
}
fclose(g);
return 0;
}