Cod sursa(job #2926401)

Utilizator tiberiusss26Titiriga Tiberiu Nicolae tiberiusss26 Data 17 octombrie 2022 19:05:06
Problema Sortare topologica Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <queue>
#include <fstream>
#include<vector>

using namespace std;

ifstream f("sortaret.in");
ofstream g("sortaret.out");

int main() {

    int n,m,x,y;
    f>>n>>m;
    vector<int> d(n+1,0);
    vector<vector<int>> listaAd(n);
    for(int i=0;i<m;i++){
        f>>x>>y;
        d[y]++;
        listaAd[x].push_back(y);
    }

    queue<int> coada;

    for(int i=1;i<=n;i++)
        if(d[i]==0)
            coada.push(i);
    while(!coada.empty()){
        int i = coada.front();
        g<<i<<" ";
        coada.pop();
        for(auto vec:listaAd[i]) {
            d[vec]--;
            if(d[vec]==0)
                coada.push(vec);
        }


    }



//    for(int i = 1;i<=n;i++)
//        cout<<i<<": "<<d[i]<<"\n";


}