Cod sursa(job #2679659)

Utilizator Arsene_DenisaArsene Denisa Arsene_Denisa Data 1 decembrie 2020 10:09:00
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include<fstream>
#include<vector>
#include<queue>

using namespace std;
vector<int>lis[50001];
queue<int>coada;
int in[50001];
int n, m, i, x, y;
int main() {

    ifstream fin("sortaret.in");
    ofstream fout("sortaret.out");
    fin>>n>>m;
    for(i=1;i<=m;i++) {
            fin>>x>>y;
            lis[x].push_back(y);
            in[y]++;
    }
    for(i=1;i<=n;i++) {
        if(in[i]==0) {
                coada.push(i);
        }
    }
    while(!coada.empty()) {
            int prim=coada.front();
            fout<<prim<<" ";
            coada.pop();
            int l=lis[prim].size();
    for(i=0;i<l;i++) {
            int nod=lis[prim][i];
            in[nod]--;
            if(in[nod]==0) {
                    coada.push(nod);
            }
    }
    }

    return 0;
}