Cod sursa(job #3306346)

Utilizator alesiodemiriAlesio Demiri alesiodemiri Data 9 august 2025 19:41:37
Problema Sortare topologica Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.2 kb
#include <iostream>
#include <queue>
#include <algorithm>
#include <set>
#include <map>
#include <stack>
#include <vector>
#include <string>
#include <deque>
#include <unordered_map>
#include <unordered_set>
#include <cmath>
#include <iomanip>

using namespace std;

#define ll long long
#define NMAX 50100

int n, e;

int visited[NMAX], deg[NMAX];
vector<int> graph[NMAX];
// Global variables

void ReadData() {
    cin >> n >> e;
    int a, b = 0;
    for(int i = 1; i <= e; i++){
        cin >> a >> b;
        graph[a].push_back(b);
        deg[b]++;
    }
        
}

void Solve() {
    for(int i = 1; i <= n; i++){
        for (int j = 1; j <= n; j++){
            if(!visited[j] && deg[j] == 0){
                visited[j] = 1;
                cout << j << " ";
                for(int k = 0; k < graph[j].size(); k++)
                    deg[ graph[j][k] ]--;
                break ;
            }
        }
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    freopen("sortaret.in", "r", stdin);
    freopen("sortaret.out", "w", stdout);

    int t = 1;
    // cin >> t; // Uncomment for multiple test cases
    while (t--) {
        ReadData();
        Solve();   
    }
    return 0;
}