Cod sursa(job #3181512)

Utilizator dimitriemihaiMihai Dimitrie dimitriemihai Data 7 decembrie 2023 08:55:38
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>
#define NM 50001

using namespace std;

ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");

vector <int> a[NM], sol;
int n, m, grad[NM];

int main()
{
    fin >> n >> m;

    int i, x, y, j;
    for (i = 1; i <= m; i ++)
    {
        fin >> x >> y;
        a[x].push_back(y);
        grad[y] ++;
    }

    while (sol.size() != n)
    {
        for (i = 1; i <= n; i ++)
            if (grad[i] == 0)
            {
                grad[i] = -1;
                sol.push_back(i);
                for (j = 0; j < a[i].size(); j ++)
                {
                    grad[a[i][j]] --;
                }
            }
    }

    for (i = 0; i < sol.size(); i ++)
        fout << sol[i] << ' ';
    return 0;
}