Cod sursa(job #2182604)

Utilizator timar_andreiTimar Andrei timar_andrei Data 22 martie 2018 15:24:04
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("sortaret.in");
ofstream fout("sortaret.out");

int N,M;
vector <int>G[50002];
int O[50002],Use[50002];
int K;

void DFS(int nod)
{
    Use[nod] = 1;
    for(int i=0;i<G[nod].size();i++)
    {
        int vecin = G[nod][i];
        if (!Use[vecin])
            DFS(vecin);
    }
    O[++K] = nod;
}

void Read()
{
    fin>>N>>M;
    for(int i=1;i<=M;i++)
    {
        int x,y;
        fin>>x>>y;
        G[x].push_back(y);
    }
}

int main()
{
    Read();
    for(int i=1;i<=N;i++)
        if (!Use[i])
            DFS(i);
    for(int i=K;i>=1;i--)
        fout<<O[i]<<' ';
    return 0;
}