Cod sursa(job #3187447)

Utilizator AlessiaFrunzaAlessia Frunza AlessiaFrunza Data 28 decembrie 2023 23:36:40
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("sortare.in");
ofstream fout("sortare.out");

int main() {
    uint numar_noduri;
    uint numar_arce;
    fin >> numar_noduri >> numar_arce;

    uint noduri_grad_interne[numar_arce];
    uint noduri_grad_externe[numar_arce];
    uint grad_intern[numar_noduri];

     for (uint i = 1; i <= numar_noduri; i++) {
        grad_intern[i] = 0;
    }

    for (int i = 1; i <= numar_arce; i++) {
        fin >> noduri_grad_externe[i];
        fin >> noduri_grad_interne[i];
        grad_intern[noduri_grad_interne[i]]++;
    }
    fin.close();
    int count = 0;

    while(count != numar_noduri) {
        for (int i = 1; i <= numar_noduri; i++) {
            if (grad_intern[i] == 0) {
                fout << i;
                count++;
                grad_intern[i] = -1;
                for (int j = 1; j <= numar_arce; j++) {
                    if (noduri_grad_externe[j] == i) {
                        grad_intern[noduri_grad_interne[j]]--;
                    }
                }
            }
            break;
        }
    }

    return 0;
}