Cod sursa(job #2335320)

Utilizator gazdac_alex@yahoo.comGazdac Alexandru Eugen [email protected] Data 3 februarie 2019 21:49:51
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int const maxim=50000;
vector <int> matrice[maxim];
int n,m;
bool vizitat[maxim];
queue <int> coada;


void citire(){
in >> n >> m;
for(int i=1;i<=m;i++){
    int a,b;
    in >> a >> b;
    matrice[a].push_back(b);
}

}

void dfs(int nodstart){
vizitat[nodstart]=true;
coada.push(nodstart);
for(size_t i=0;i<matrice[nodstart].size();i++){
    int vecin=matrice[nodstart][i];
    if(vizitat[vecin]==false)dfs(vecin);
}
}

void parcurgere(){
for(int i=1;i<=n;i++){
    if(vizitat[i]==false)dfs(i);
}
}

void afisare(){
while(!coada.empty()){
    out << coada.front() << " ";
    coada.pop();
}
}

int main(){
citire();
parcurgere();
afisare();
return 0;}