Cod sursa(job #1977715)

Utilizator andistroieAlexandru-Mihai Stroie andistroie Data 5 mai 2017 22:15:31
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
/*
    Exemplificare BFS

    http://www.infoarena.ro/problema/bfs
*/

#include <iostream>
#include <cstdio>
#include <fstream>
#include <vector>
#include <bitset>
#include <cassert>
#include <queue>
#include <cstring>
#include <stack>


using namespace std;

#define muchie pair<int,int>
vector<vector<int>> G;
vector<int> visited;
int n, m;


void dfs(int node){

    visited[node] = 1;
    cout << node << " "; 
    for(auto it = G[node].begin(); it != G[node].end(); it++){
        if(!visited[*it]){
            dfs(*it);
        }
    }
      
}

void solve(){

    for(int i = 1; i <=n ; i++){
        if(!visited[i]){
               dfs(i);
        }
    }
}

int main() {

 
    muchie mch;

    FILE* f = freopen("sort-top.in", "r", stdin);
    FILE* g = freopen("sort-top.out", "w", stdout);

    cin>> n >> m;
    G.resize(n+1);
    visited.resize(n+1);
    for(int i = 0; i < m; i++){
        cin >> mch.first >> mch.second;
        G[mch.first].push_back(mch.second);
    }

    solve();

    fclose(f);
    fclose(g);

    return 0;
}