Cod sursa(job #3193782)

Utilizator VespaOlaru Amelia Vespa Data 15 ianuarie 2024 17:52:20
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
// sortaret_2.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <fstream>
#include <vector>
#include <stack>
#define NOD 50005
#define MUCHII 100005
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
int N, M;
vector <int>G[NOD];
stack <int> S;
int viz[NOD] = { 0 };

void sortaret(int st)
{
    viz[st] = 1; 
    for (auto i : G[st])
    {
        if (viz[i] == 0)
        {
            sortaret(i);
            
        }
    }
    S.push(st);
}

int main()
{
    cin >> N >> M;
    for (int i = 1; i <= M; i++)
    {
        int x, y;
        cin >> x >> y;
        G[x].push_back(y);
    }
    for (int i = 1; i <= N; i++)
    {
        if (viz[i] == 0)
            sortaret(i);
    }
    while (!S.empty())
    {
        cout << S.top() << " "; S.pop();
    }


}