Cod sursa(job #1017725)

Utilizator alex136Alexandru Calin alex136 Data 28 octombrie 2013 10:26:15
Problema Sortare topologica Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>
using namespace std;

int i,n,m,k;
int viz[100],v[100];

ifstream f("sortaret.in");
ofstream g("sortaret.out");

struct nod{
    int nr;
    nod* urm;
} *li[100];

void df(short i){
    viz[i]=1;
    for(nod* u=li[i];u;u=u->urm) if(viz[u->nr]==0) df(u->nr);
    v[++k]=i;
}

void link(){
    int a,b;
    f>>a>>b;
    nod* u=new nod;
    u->urm=li[a];
    u->nr=b;
    li[a]=u;
}

int main(){
    f>>n>>m;
    for(i=0;i<m;i++) link();
    for(i=1;i<=n;i++) if(!viz[i]) df(i);
    for(i=n;i;i--) g<<v[i]<<' ';g<<'\n';
    g.close();f.close();
    return 0;
}