Cod sursa(job #2344632)

Utilizator priboiraduPriboi Radu Bogdan priboiradu Data 15 februarie 2019 12:57:02
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>

std::vector< int >g[50001];
int nd[50001], x[50001];
int nr = 1;

FILE *fin, *fout;

void dfs( int nod ) {
    int i;
    nd[nod] = 1;
    for ( i = 0; i < g[nod].size(); i++ ) {
        if ( nd[g[nod][i]] == 0 )
            dfs( g[nod][i] );
    }
    x[nr] = nod;
    nr++;
}

int main() {
    int n, m, i, a, b;
    fin = fopen( "sortaret.in", "r" );
    fout = fopen( "sortaret.out", "w" );
    fscanf( fin, "%d%d", &n, &m );
    for ( i = 0; i < m; i++ ) {
        fscanf( fin, "%d%d", &a, &b );
        g[a].push_back( b );
    }
    dfs( 1 );
    for ( i = nr - 1; i > 0; i-- )
        fprintf( fout, "%d ", x[i] );
    fclose( fin );
    fclose( fout );
    return 0;
}