Cod sursa(job #2667873)

Utilizator florescu.mirunaMiruna Stefania Florescu florescu.miruna Data 4 noiembrie 2020 00:08:01
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include<fstream>
#include<vector>

using namespace std;

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

vector<int> a[50005];
bool viz[50005];
int n,m,stiva[50005],k=0;
void citire()
{
        int x,y;

    f>>n>>m;

    while(m)
    {
        f>>x>>y;
        a[x].push_back(y);
        m--;
    }
}
void DFS(int x)
{

    viz[x] = true;
    for(auto it: a[x])
        if(!viz[it])
            DFS(it);
    stiva[++k] = x;

}
int main()
{
    citire();

    for (int i = 1; i <= n; i++)
        if (!viz[i])
            DFS(i);

    for(int i=n;i>=1;i--)
        g<<stiva[i]<<" ";

    f.close();
    g.close();
    return 0;
}