Cod sursa(job #1320314)

Utilizator retrogradLucian Bicsi retrograd Data 17 ianuarie 2015 20:30:59
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream>
#include<vector>
#define MAXN 50001

using namespace std;

typedef int var;

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

vector<var> G[MAXN];
vector<var> SOL;
bool VIZ[MAXN];

void dfs(var node) {
    VIZ[node] = 1;
    for(vector<var>::iterator it=G[node].begin(); it!=G[node].end(); ++it) {
            if(!VIZ[*it])
                dfs(*it);
    }
    SOL.push_back(node);
}

int main() {
    var n, m, a, b;
    fin>>n>>m;
    while(m--) {
        fin>>a>>b;
        G[a].push_back(b);
    }
    for(var i=1; i<=n; i++) {
        if(!VIZ[i])
            dfs(i);
    }
    for(var i=SOL.size() - 1; i>=0; i--)
        fout<<SOL[i]<<" ";
    return 0;
}