Pagini recente » Cod sursa (job #2759030) | Cod sursa (job #349301) | Cod sursa (job #781474) | Cod sursa (job #1476601) | Cod sursa (job #2390706)
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
FILE *f,*g;
struct graf
{
int node,next;
}v[100002];
int start[50002],fr[50002];
int n,m;
void read()
{ int x,y,k=0;
fscanf(f,"%d %d",&n,&m);
for(int i=1; i<=m; i++)
{
fscanf(f,"%d %d",&x,&y);
v[++k].node=y;
v[k].next=start[x];
start[x]=k;
fr[y]++;
}
}
void solve()
{ int ok=1;
while(ok)
{ ok=0;
for(int i=1; i<=n;i++)
{
if(!fr[i])
{ ok=1;
fprintf(g,"%d ",i);
for(int j=start[i]; j; j=v[j].next)
{
fr[v[j].node]--;
}
fr[i]=-1;
}
}
}
}
int main()
{ f = fopen("sortaret.in", "r");
g = fopen("sortaret.out", "w");
read();
solve();
//write();
fclose(f);
fclose(g);
return 0;
}