Cod sursa(job #1849383)

Utilizator Malan_AbeleMalan Abele Malan_Abele Data 17 ianuarie 2017 14:11:51
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int n,m,x,y;
struct nod{
    int vecin;
    struct nod *urm;
}*l[50001],*actual;
bool viz[50001];
void df(int k){
    struct nod *actual;
    viz[k]=true;
    out<<k<<" ";
    actual=l[k];
    while(actual!=NULL){
        if(viz[actual->vecin]==false)
            df(actual->vecin);
        actual=actual->urm;
    }
}
int main()
{
    in>>n>>m;
    for(int i=1;i<=m;++i){
        in>>x>>y;
        actual=new nod;
        actual->vecin=y;
        actual->urm=l[x];
        l[x]=actual;
    }
    for(int i=1;i<=n;++i)
        if(viz[i]==false)
            df(i);
    /*out<<"\n\n";
    for(int i=1;i<=n;++i){
        actual=l[i];
        out<<i<<": ";
        while(actual!=NULL){
            out<<actual->vecin<<" ";
            actual=actual->urm;
        }
        out<<"\n";
    }*/
    return 0;
}