Cod sursa(job #1921131)

Utilizator alinp25Alin Pisica alinp25 Data 10 martie 2017 11:30:01
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include <iostream>


std::ofstream fout("sortaret.out");


void read(std::vector < int > v[], int &n) {
    int m, x, y;
    std::ifstream fin("sortaret.in");
    fin >> n >> m;
    for (int i = 0; i < m; i++) {
        fin >> x >> y;
        v[x].push_back(y);
    }
    fin.close();
}


void dfs(std::vector < int > v[], int viz[50001], int src) {
    fout << src << " ";
    viz[src] = 1;
    for (int i = 0; i < v[src].size(); i++) {
        if (!viz[v[src][i]]) {
            dfs(v, viz, v[src][i]);
        }
    }
}


int main(int argc, char *argv[]) {
    int n, viz[50001] = { 0 };
    std::vector < int > v[50001];
    read(v, n);
    for (int i = 1; i <= n; i++) {
        std::sort(v[i].begin(), v[i].end());
    }
    for (int i = 1; i <= n; i++) {
        if (!viz[i]) {
            dfs(v, viz, i);
        }
    }
    return 0;
}