Cod sursa(job #2666429)

Utilizator MARIAN.DANAILADanaila Marian MARIAN.DANAILA Data 1 noiembrie 2020 20:09:24
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb

#include<bits/stdc++.h>

using namespace std;

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

vector<int> graph[50001];
int* visited= new int[50001];
stack<int> stck;

void topologicalSort(int vertex, int visited[], stack<int>& stck){
    visited[vertex] = 1;
    for(auto neigh:graph[vertex]){
        if(!visited[neigh]){
            topologicalSort(neigh, visited, stck);
        }
    }
    stck.push(vertex);
}

int main()
{
    int n,m,x,y,i;
    fin>>n>>m;
    for(i=0;i<m;i++){
        fin>>x>>y;
        graph[x].push_back(y);
    }


    for(i=1;i<=n;i++){
        if(!visited[i]){
            topologicalSort(i, visited, stck);
        }
    }
    while(!stck.empty()){
        fout<<stck.top()<<" ";
        stck.pop();
    }
    return 0;
}