Cod sursa(job #1119069)

Utilizator alexteStefanescu Alexandru Catalin alexte Data 24 februarie 2014 14:58:37
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include<fstream>
using namespace std;
struct nod
{
    int v;
    nod *urm;
};
nod *p,*LA[50003];
int n,m,i,a,b,x[50003],k,viz[50003];
void df(int vf)
{
    nod *p;
    viz[vf]=1;
    for(p=LA[vf];p;p=p->urm)
    {
        if(viz[p->v]==0)
        {
            df(p->v);
        }
    }
    k++;
    x[k]=vf;
}
int main()
{
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
fin>>n>>m;
for(i=1;i<=m;i++)
{
    fin>>a>>b;
    p=new nod;
    p->v=b;
    p->urm=LA[a];
    LA[a]=p;
}
for(i=1;i<=n;i++)
    if(viz[i]==0)
        df(i);
for(i=n;i>=1;i--)
    fout<<x[i]<<' ';
fout.close();
return 0;
}