Cod sursa(job #3261632)

Utilizator darian4444Verniceanu Darian darian4444 Data 7 decembrie 2024 09:23:59
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;

int N,M,x,y,i,j,v[50005];
vector<int> A[50005];
map< pair<int,int>, bool> seen;
deque<int> sorted;

void dfs(int k){
    v[k] = 1;

    for (auto next_n : A[k])
        if (!v[next_n])
            dfs(next_n);

    sorted.push_back(k);
}

int main()
{
    cin >> N >> M;

    for (i = 1;i <= M;i++){
        cin >> x >> y;
        if (!seen[{y,x}]);
        A[y].push_back(x);
        seen[{y,x}] = 1;
    }

    for (i = 1;i <= N;i++)
        if (!v[i])
            dfs(i);

    for (auto elem : sorted)
        cout << elem << " ";

    return 0;
}