Cod sursa(job #2476982)

Utilizator MariusblockMoga Marius-Ioan Mariusblock Data 19 octombrie 2019 13:46:21
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

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

vector<int> G[50004];
int TSORT[50004];
int viz[50004];
int n,k;

void dfs(int nod){
    int i,vecin;
    viz[nod] = 1;
    for(i = G[nod].size()-1; i >= 0; i--){
        vecin = G[nod][i];
        if(!viz[vecin]){
            dfs(vecin);
        }
    }
    TSORT[++k] = nod;
}

int main()
{
    int m,i;
    int a1,a2;
    fin>>n>>m;
    for(i = 1; i <= m; i++){
        fin>>a1>>a2;
        G[a1].push_back(a2);
    }
    for(i = 1; i <= n; i++){
        if(viz[i] == 0){
            dfs(i);
        }
    }
    for(i = n; i >= 1; i--){
        fout<<TSORT[i]<<" ";
    }
    return 0;
}