Cod sursa(job #2711275)

Utilizator RaresMateiMatei Rares Cristian RaresMatei Data 23 februarie 2021 21:07:45
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <vector>
#include <stack>

using namespace std;

ifstream f("sortaret.in");

ofstream g("sortaret.out");

int n,m,x,y;

bool sel[50010];

vector <int> G[50010];

stack <int> V;

void dfs(int x)
{
    sel[x]=true;

    for(auto it:G[x])
       if(!sel[it]) dfs(it);

        V.push(x);

}

void read()
{
    f>>n>>m;

    for(int i=1; i<=m; i++)
        f>>x>>y,G[x].push_back(y);

}
int main()
{
    read();

    dfs(1);

    for(int i=1;i<=n;i++)
        if(sel[i]==false) dfs(i);

    while(!V.empty())
    {
        g<<V.top()<<" ";

        V.pop();

    }

    return 0;
}