Cod sursa(job #2557133)

Utilizator CarlaDianaCarla Diana CarlaDiana Data 25 februarie 2020 15:55:16
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
vector <int> v[50010];
bool viz[50010];
int vec[50010],rang;
int n,m,a,b;

void DFS(int nod)
{
    viz[nod]=1;
    for(auto it:v[nod])
    {
        if(!viz[it])
            DFS(it);
    }
    vec[rang]=nod;
    rang--;
}

int main()
{
    fin>>n>>m;
    rang=n;
    for(;m;m--)
    {
        fin>>a>>b;
        v[a].push_back(b);
    }
    for(int i=1;i<=n;i++)
    {
        if(!viz[i])
        {
            DFS(i);
        }
    }
    for(int i=1;i<=n;i++)
        fout<<vec[i]<<" ";
    return 0;
}
/*
7 8
1 2
1 4
2 3
3 5
3 6
4 2
4 6
6 7
*/
/*9 8
1 2
1 3
3 4
3 5
5 9
4 6
4 7
4 8*/