Cod sursa(job #2926414)

Utilizator SteanfaDiaconu Stefan Steanfa Data 17 octombrie 2022 19:12:16
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

std::queue<int> q;
int intern[1000000];

int main()
{
    std::vector<std::vector<int>> v(1000000);
    std::ifstream cin("sortaret.in");
    std::ofstream cout("sortaret.out");
    unsigned int n, m;
    cin >> n >> m;

    for (size_t i = 0; i < m; i++)
    {
        int a, b;
        cin >> a >> b;
        intern[b]++;
        v[a].push_back(b);
    }
    for (size_t i = 1; i <= n; i++)
    {
        if (intern[i] == 0)
        {
            q.push(i);
        }
    }
    while (!q.empty())
    {
        int nod = q.front();
        cout << nod << " ";
        q.pop();
        for (auto &&i : v[nod])
        {
            intern[i]--;
            if (intern[i] == 0)
            {
                q.push(i);
            }
        }
    }
}