Cod sursa(job #2532720)

Utilizator danbesuDan Besu danbesu Data 28 ianuarie 2020 10:19:22
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include<fstream>
#include<algorithm>
#include<vector>
using namespace std;

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

vector<int>graf[50001];
bool viz[50001];
int n, m;

void DFS(int nod);
int main()
{
    in>>n>>m;
    while(m--){
        int a, b;
        in>>a>>b;
        graf[a].push_back(b);
    }

    for(int nod = 1; nod<=n; ++nod){
        if(viz[nod] == false){
            out<<nod<<' ';
            DFS(nod);
        }
    }
    return 0;
}

///idee: merg in adancimea vecinilor si afisez nodurile
///            in ordine crescatoare dupa cum le intalnesc
void DFS(int nod){
    viz[nod] = true;
    for(int i = 0; i < graf[nod].size(); ++i){
        int vecin = graf[nod][i];
        if(viz[vecin] == false){
            out<<vecin<<' ';
            viz[vecin] = false;
            DFS(vecin);
        }
    }
}