Cod sursa(job #1909024)

Utilizator vasi77Vasile Jitaru vasi77 Data 7 martie 2017 11:26:34
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#define nr 50000
using namespace std;
ifstream fi("sortaret.in");
ofstream fo("sortaret.out");
int n,m,viz[50001],x,y,c[5*nr],k,j;
   struct nod
   {
      int info;
      nod *urm;
    };
  nod*L[50001];
  nod*q, *p;
void adauga(int x,int y){
nod*  p=new nod;
      p->info=y;
      p->urm=L[x];
      L[x]=p;
}
void DFS(int v){
    viz[v]=1;

    nod *p=L[v];
    while(p){
      if(viz[p->info]==0)
      {
       DFS(p->info);
       c[++k]=p->info;
       }
      p=p->urm;

    }

}


int main()
{

fi>>n>>m;
for(int i=1;i<=m;i++)
{
fi>>x>>y;
adauga(x,y);
}
fo<<1<< " " ;
for(int i=1;i<=n;i++)
  if(viz[i]==0)
    DFS(i);
    for(j=k;j>=1;j--)
        fo<<c[j]<<" ";
}