Cod sursa(job #3166491)

Utilizator BuruianaRaresAndreiBuruiana Rares Andrei BuruianaRaresAndrei Data 8 noiembrie 2023 20:13:48
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

ifstream cin("sortaret.in");
ofstream cout("sortaret.out");

vector<int> v[100002], ans;
bool viz[100002];


void dfs(int nod);

int main()
{
    int n, m, prim;
    cin >> n >> m;
    for(int i = 1; i <= m; i++)
    {
        int x, y;
        cin >> x >> y; ///if(i == 1) prim = x;
        v[x].push_back(y);
    }
    ///cout << prim << ' ';
    for(int i = 1; i <= n; i++)
        if(viz[i] == 0)
            dfs(i);
    for(int i = n - 1; i >= 0; i--)
        cout << ans[i] << ' ';
    return 0;
}

void dfs(int nod)
{
    int link;
    viz[nod] = 1;
    for(auto link : v[nod])
        if(viz[link] == 0)
            dfs(link);
    viz[nod] = 2;
    ans.push_back(nod);
}