Cod sursa(job #2663280)

Utilizator DeniszPop Denis Denisz Data 25 octombrie 2020 20:38:26
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

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

vector<vector<int>>g(50001);
vector<int>nod;
vector<int>viz(50001);

void dfs(int n)
{
    viz[n] =1;
    for(int i=0; i<g[n].size(); i++)
        if(viz[g[n][i]]==0)
            dfs(g[n][i]);
    nod.push_back(n);
}

int main()
{
    int vf,arc,a,b,i;
    fin>>vf>>arc;
    for( i=0; i<arc; i++)
    {
        fin>>a>>b;
        g[a].push_back(b);
    }
    for( i=1;i<=vf; i++)
        if(viz[i]==0)
            dfs(i);
    for( i=nod.size()-1; i>=0; i--)
        fout<<nod[i]<<" ";
}