Cod sursa(job #2354435)

Utilizator cristian51090Oanta Cristian cristian51090 Data 25 februarie 2019 12:19:32
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector <int> x[50005];
vector <int> top;
bool vizitat[50005];
int n;
void citire(){
    int m,l,i,j;
    fin>>n>>m;
    for(l=1;l<=m;l++){
        fin>>i>>j;
        x[i].push_back(j);
    }
}
void afisare(){
    int i,j;
    for(i=1;i<=n;i++){
        cout << i << " --- ";
        for(j=0;j<x[i].size();j++) cout << x[i][j] << " ";
        cout << endl;
    }
}
void dfs(int iacum){
    vizitat[iacum]=true;
    int i,j;
    top.push_back(iacum);
    for(i=0;i<x[iacum].size();i++)
            if(!vizitat[x[iacum][i]])
               dfs(x[iacum][i]);
}
void prelucrare(){
    int i,j;
    for(i=1;i<=n;i++) vizitat[i]=false;
    for(i=1;i<=n;i++){
        if(!vizitat[i])
            dfs(i);
    }
}
int main(){
citire();
//afisare();
prelucrare();
for(int i=0;i<top.size();i++) fout << top[i] << " ";
return 0;
}