Cod sursa(job #1017103)

Utilizator vladvaldezVlad Dimulescu vladvaldez Data 27 octombrie 2013 11:10:19
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <stdio.h>
#include <vector>

using namespace std;
FILE *f=fopen("sortaret.in","r");
FILE *g=fopen("sortaret.out","w");

vector<int>l[50005],c;
int n,m,x,y,i,use[50005],v[50005],nr;


void df(vector<int>c,int i)
{
use[i]=1;
for (vector<int>::iterator it=c.begin();it!=c.end();++it,use[*it]==0)
   {
     if (use[*it]==0)df(l[*it],*it);
   }
v[++nr]=i;
}

int main()
{

fscanf(f,"%d%d",&n,&m);
for(i=1;i<=m;i++)
{
 fscanf(f,"%d%d",&x,&y);
 l[x].push_back(y);
}

for(i=1;i<=n;i++)
if (use[i]==0)df(l[i],i);


for(i=n;i>=1;i--)
fprintf(g,"%d ",v[i]);


fclose(g);
return 0;
}