Pagini recente » Cod sursa (job #3209724) | Cod sursa (job #2890263) | Cod sursa (job #2114409) | Cod sursa (job #1375984) | Cod sursa (job #1648806)
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<cstdio>
using namespace std;
ofstream g("sortaret.out");
int nr,ordine[50005],*a[50005],n,m,x,y,viz[50005];
void dfs(int nod)
{ int i;
viz[nod]=1;
for (i=1;i<=a[nod][0];i++)
if (viz[a[nod][i]]==0)
dfs(a[nod][i]);
ordine[++nr]=nod;}
int main()
{ int i;
FILE * f=fopen("sortaret.in","r");
fscanf (f,"%d %d",&n,&m);
for (i=1;i<=n;i++)
{a[i]=(int*)realloc(a[i],sizeof(int));
a[i][0]=0;}
for (i=1;i<=m;i++)
{fscanf(f,"%d %d",&x,&y);
a[x][0]++;
a[x]=(int*)realloc(a[x],(a[x][0]+1)*sizeof(int));
a[x][a[x][0]]=y;}
for (i=1;i<=n;i++)
if (viz[i]==0)
dfs(i);
for (i=n;i>=1;i--)
g<<ordine[i]<<" ";
return 0; }