Cod sursa(job #2718931)

Utilizator elena_dElena Dulgheru elena_d Data 9 martie 2021 13:12:34
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;

const int N = 50001;
vector<int>a[N];
queue <int> q;
int n, nrvf[N];

int main()
{
    ifstream cin("sortaret.in");
    ofstream cout("sortaret.out");
    int i, x, y, m;
    cin >> n >> m;
    for (i = 1; i <= n; i++)
    {
        cin >> x >> y;
        a[x].push_back(y);
        nrvf[y]++; 
    }
    for (i = 1; i <= n; i++)
    {
        if (nrvf[i] == 0)
        {
            q.push(i);
        }
    }
    while (!q.empty())
    {
        x = q.front();
        cout << x << " ";
        q.pop();
        for (auto i : a[x])
        {
            nrvf[i]--;
            if (nrvf[i] == 0)
            {
                q.push(i);
            }
        }
    }

    return 0;
}