Cod sursa(job #453834)

Utilizator sapiensCernov Vladimir sapiens Data 11 mai 2010 14:06:21
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#include <vector>
using namespace std;

ifstream fin; ofstream fout;
vector <long> a[50000],b; long n,m,i,x,y;
bool c[50000];

void visit (long x) {
     if (!c[x]) {
        c[x]=1;
        for (long y=0; y<a[x].size (); y++) visit (a[x][y]);
        b.push_back (x);
     }
}

int main () {
    fin.open ("sortaret.in"); fout.open ("sortaret.out");
    fin>>n>>m;
    for (i=0; i<m; i++) {
        fin>>x>>y;
        a[x].push_back (y);
    }
    for (i=1; i<=n; i++) visit (i);
    for (i=b.size ()-1; i>-1; i--) fout<<b[i]<<" "; fout<<endl;
    fin.close (); fout.close ();
    return 0;
}