Cod sursa(job #2677003)

Utilizator SergiuS3003Sergiu Stancu Nicolae SergiuS3003 Data 25 noiembrie 2020 17:31:07
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <bitset>
#define pb push_back
using namespace std;
ifstream f ( "sortaret.in" );
ofstream g ( "sortaret.out" );
const int NMAX = 50001;
vector<int>S;
vector<int>G[NMAX];
bitset<NMAX>vis;
void DFS ( int x )
{
    vis[x] = 1;

    for ( auto i : G[x] )
        if ( !vis[i] )
            DFS ( i );

    S.pb ( x );
}
int main()
{
    int N, M;
    f >> N >> M;

    for ( int i = 1; i <= M; i++ )
    {
        int x, y;
        f >> x >> y;
        G[x].pb ( y );
    }

    for ( int i = 1; i <= N; i++ )
        if ( !vis[i] )
            DFS ( i );

    for (vector<int>::reverse_iterator it = S.rbegin(); it != S.rend(); it++ )
        g << *it << ' ';

    return 0;
}