Cod sursa(job #1255079)

Utilizator Stefanescu_MihaiStefanescu Mihai-Nicolae Stefanescu_Mihai Data 4 noiembrie 2014 12:14:54
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
#include <vector>

using namespace std;


#define fileIn "sortaret.in"
#define fileOut "sortaret.out"

#define maxN 50030
#define maxM 100050

vector <int> vec[maxN];
int prev[maxN];

int main()
{
    ifstream sIn( fileIn );
    ofstream sOut( fileOut );

    int n, m, i;

    sIn >> n >> m;

    int x, y;
    int first;
    for ( i = 1; i <= m; ++i )
    {
        sIn >> x >> y;
        vec[x].push_back( y );

        ++prev[y];
    }

    for ( i = 1; i <= n; ++i )
    {
        if ( !prev[i] )
            first = i;
    }

    for ( i = 1; i <= n; ++i )
    {
        sOut << first << ' ';

        int size = vec[i].size();
        for ( y = 0 ; y < size; ++y )
        {
            --prev[ vec[i][y] ];
            if ( !prev[ vec[i][y] ] )
                first = vec[i][y];
        }
    }

    sOut << '\n';



    return 0;
}