Cod sursa(job #1499792)

Utilizator rughibemBelcineanu Alexandru Ioan rughibem Data 11 octombrie 2015 10:19:09
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<stdio.h>
#include<vector>
#define MAXN 50005

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

vector <int> v[MAXN];

int N, M, ST[MAXN], viz[MAXN], hST = 0;

void Citire(){
int i, x, y;

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

}

void DFS( int k ){
int i;

    viz[k] = 1;

    for(i=0;i<v[k].size();i++){

        if( viz[ v[k][i] ] == 0 )
            DFS( v[k][i] );

    }

    ST[++hST] = k;

}


void Afisare(){
int i;

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

}

int main(){

    Citire();
    DFS(1);
    Afisare();

return 0;
}