Cod sursa(job #3336416)

Utilizator 10danutuCraciun Dan-Nicolae 10danutu Data 24 ianuarie 2026 17:57:09
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>

using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
vector<vector<int>> adj;
 vector<int>vizitat;
 vector<int>rezultat;
 void dfs(int node){
    vizitat[node]=1;
    for(auto vecin : adj[node]){
        if(!vizitat[vecin])
            dfs(vecin);
    }
    rezultat.push_back(node);
 }



int main(){
    int n , m;
    f>>n>>m;
    adj.resize(n+1);
    vizitat.resize(n+1);
    int a,b;
    for(int i =1 ; i<=m;i++){
        f>>a>>b;
        adj[a].push_back(b);
    }
    for(int i = 1 ; i<= n ;i++)
        if(!vizitat[i])
            dfs(i);
    reverse(rezultat.begin(),rezultat.end());
    for(int i = 0 ; i < n ; i++)
        g<<rezultat[i]<<" ";
    return 0;
}