Cod sursa(job #1096676)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 2 februarie 2014 15:05:49
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<fstream>
using namespace std;
typedef struct celula {
           int nod;
           celula *next;
           }*lista;
lista graf[50005],v;
int i,n,m,st[50005],lev,x,y;
bool viz[50005];

void dfs(int nod) {
     viz[nod]=1;
     for (lista p=graf[nod]; p; p=p->next) 
      if (viz[p->nod]==0) dfs(p->nod);
     ++lev;
     st[lev]=nod;
}

int main(void) {
    ifstream fin("sortaret.in");
    ofstream fout("sortaret.out");
    fin>>n>>m;
    for (i=1; i<=m; ++i) {
        fin>>x>>y;
        v=new celula; v->nod=y; v->next=graf[x]; graf[x]=v;
        }
    for (i=1; i<=n; ++i)
     if (viz[i]==0) dfs(i);
     
    for (; lev>0; --lev) fout<<st[lev]<<" ";
 return(0);
}