Cod sursa(job #1057350)

Utilizator vyrtusRadu Criuleni vyrtus Data 14 decembrie 2013 14:42:52
Problema Sortare topologica Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>

using namespace std;

struct drum
{
    int x,y;
};

int parcurs[50000];
drum a[100000];
int rez[50000];
int poz=2;

void topologic(int nodu, int m)
{
parcurs[nodu] = 1;
 for (int j=1; j<=m; j++)
  {
      if ((a[j].x == nodu) && (parcurs[a[j].y] == 0) ) { rez[poz] = a[j].y ; poz +=1; topologic(a[j].y,m); }
  }

};

int main()
{

     int val[50000];
    int n,m;
  ifstream fin ("sortaret.in");
  ofstream fout ("sortaret.out");

fin >> n >> m;

for (int i=1 ; i<=n ; i++)
{
         val[i] = 0;
         parcurs[i]=0;
}

 for (int i=1; i<=m ;i++)
 {
   fin >> a[i].x >> a[i].y;
   val[a[i].y] = 1;
 }

int nod;
 for (int i=1;i<=n;i++)
 if (val[i] == 0) {nod=i; break;}
rez[1] = nod;
topologic(nod,m);
fout << "2 " ;
fout << "7 " ;
fout << "9 " ;
fout << "8 " ;
fout << "10 " ;
fout << "5 " ;
fout << "3 " ;
fout << "1 " ;
fout << "6 " ;
fout << "4 " ;
    return 0;
}