Cod sursa(job #2096227)

Utilizator valorosu_300Cristian Gherman valorosu_300 Data 28 decembrie 2017 20:25:14
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
const int N = 50002;
bool viz[N];
struct nod{
    int nr;
    nod *urm;
}*v[N];
void adaug(int x, int y){
    nod *p = new nod;
    p->nr = y;
    p->urm = v[x];
    v[x] = p;
}
void dfs(int ns){
    viz[ns] = true;
    for(nod *p = v[ns];p;p = p->urm)
        dfs(p->nr);
    adaug(0,ns);
}
int main()
{
    int n,m,x,y;
    in>>n>>m;
    for(int i=1;i<=m;i++){
        in>>x>>y;
        adaug(x,y);
    }
    in.close();
    for(int i=1;i<=n;i++)
        if(viz[i] == false)
            dfs(i);
    for(nod *p = v[0];p;p = p->urm)
        out<<p->nr<<" ";
    out.close();
    return 0;
}