Cod sursa(job #2359077)

Utilizator tifui.alexandruTifui Ioan Alexandru tifui.alexandru Data 28 februarie 2019 16:37:46
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>
#define Nmax 50005

using namespace std;

ifstream f("sortaret.in");
ofstream g("sortaret.out");

list <int> G[Nmax];
bitset <Nmax> vis;
int ans[Nmax];
int N,M,lvl;

void DFS(int node){

    vis[node]=true;
    for(const auto &w:G[node])
        if(!vis[w])
            DFS(w);
    ans[++lvl]=node;
}

void read_data(){

    f>>N>>M;
    int x,y;
    while(M--){

        f>>x>>y;
        G[x].push_back(y);
    }
}

void print_ans(){

    for(int i=N;i;i--)
        g<<ans[i]<<' ';
}

int main(){

    read_data();

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

    print_ans();

    return 0;
}