Cod sursa(job #2769363)

Utilizator MindralexMindrila Alex Mindralex Data 14 august 2021 22:54:55
Problema Sortare topologica Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int maxVal = 5001;

int n, mat[maxVal][maxVal],grad_intern[maxVal], stiva[maxVal], h = 0, vizitat[maxVal];

int dfs (int x)
{
    vizitat[x] = 1;

    for (int i = 1 ; i <= n; i++)
    {
        if (mat[x][i] == 1 && vizitat[i] == 0)
        {
            vizitat[i] = 1;
            dfs(i);
        }
    }
    stiva[++h] = x;
}

int main ()
{
    int m;
    fin >> n >> m;
    for (int i = 1 ; i <= m; i++)
    {
        int x, y;
        fin >> x >> y;
        mat[x][y] = 1;
        grad_intern[y]++;;
    }
    for (int i = 1; i <= n; i++)
    {
        if (grad_intern[i] == 0)
            dfs(i);
    }
    for (int i = h; i >= 1; i--)
        fout << stiva[i] << ' ';
    return 0;
}