Cod sursa(job #2214523)

Utilizator andreiomd1Onut Andrei andreiomd1 Data 19 iunie 2018 12:05:51
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

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

bool sel[100005];

int n, m;

vector <int> sol;

vector <int> G[50005];

int i;

int x, y;

void df (int x)
{
    int i, y;

    sel[x]=true;

    for(i=0; i<G[x].size(); i++) {
        y=G[x][i];
        if(!sel[y])
            df(y);
    }

    sol.push_back(x);

}

int main()
{
    f>>n>>m;

    for(i=1; i<=m; i++) {
        f>>x>>y;

        G[x].push_back(y);
    }

    for(i=1; i<=n; i++)
        if(!sel[i])
            df(i);


    for(i=sol.size()-1; i>=0; i--)
        g<<sol[i]<<' ';

    g<<'\n';

    return 0;
}