Cod sursa(job #2719194)

Utilizator Arsene_DenisaArsene Denisa Arsene_Denisa Data 9 martie 2021 17:40:39
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include<fstream>
#include<vector>
#include<queue>

using namespace std;
queue<int>h;
vector<int>v[500001];
int grad[500001];

int main() {
    int i, n, m, x, y, nod;

    ifstream fin("sortaret.in");
    ofstream fout("sortaret.out");
    fin>>n>>m;
    for(i=1;i<=m;i++) {
        fin>>x>>y;
        v[x].push_back(y);
        grad[y]++;
    }
    for(i=1;i<=n;i++) {
        if(grad[i]==0) {
            h.push(i);
        }
    }
    while(!h.empty()){
        nod=h.front();
        fout<<nod<<" ";
        h.pop();
        for(auto newn:v[nod]) {
            grad[newn]--;
            if(grad[newn]==0) {
                h.push(newn);
            }
        }
    }
    return 0;
}