Cod sursa(job #3330653)

Utilizator ZsomborZsombor Horvay Zsombor Data 20 decembrie 2025 21:42:28
Problema Sortare topologica Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream be("sortaret.in");
ofstream ki("sortaret.out");

int main()
{
    int n, m;
    be >> n >> m;

    vector<vector<char>> g(n + 1, vector<char>(n + 1));

    for(int i = 0; i < m; i++)
    {
        int x, y;
        be >> x >> y;

        g[y][x] = 1;
    }

    vector<int> ans;

    while((int)ans.size() != n)
    {
        for(int i = 1; i <= n; i++)
        {
            bool b = true;

            for(int j = 1; j <= n; j++)
            {
                if(g[i][j] != 0)
                {
                    b = false;
                    break;
                }
            }

            if(b)
            {
                ans.push_back(i);

                for(int k = 1; k <= n; k++)
                {
                    if(g[k][i] != -1) g[k][i] = 0;
                }

                g[i][1] = -1;
            }
        }
    }

    for(int i : ans)
    {
        ki << i << " ";
    }

    return 0;
}