Cod sursa(job #2335399)

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


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

}

void aflare(){

for(int i=1;i<=n;i++)if(grade[i]==0){
    coada[contor]=i;
    contor++;
};
cout << "done";
for(int i=0;i<n;i++){
    int x=coada[i];
    for(size_t j=0;j<matrice[x].size();j++){
        int vecin=matrice[x][j];
        grade[vecin]--;
        if(grade[vecin]==0){
                coada[contor]=vecin;
                contor++;}
    }
}
}

void afisare(){
for(int i=0;i<contor;i++){
    out << coada[i] << " ";
}
}

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