Cod sursa(job #1846976)

Utilizator AnduRazvanMindrescu Andu AnduRazvan Data 14 ianuarie 2017 10:53:03
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>

using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
struct nod
{ int info;
  nod *urm;
};
nod *a[50001];
void Add(nod *&prim,int y)
{ nod *q=new nod;
    q->info=y;
    q->urm=prim;
    prim=q;
}
int n,m;int viz[50001],gr[50001],z,cl[50001],ok;
int main()
{ fin>>n>>m;
  int i,k,j;
  for(k=1;k<=m;k++)
    {fin>>i>>j;
     Add(a[i],j);
     gr[j]++;
    }
  /*  for(i=1;i<=n;i++)
      { nod *p;
            for(p=a[i];p!=NULL;p=p->urm)
        fout<<p->info<<" ";
        fout<<"\n";

      }
      */
    ok=0;
    while(ok==0)
    { ok=1;
    for(i=1;i<=n;i++)
    { if(gr[i]==0&&viz[i]==0)
        { ok=0;
            nod *p;
            for(p=a[i];p!=NULL;p=p->urm)
                gr[p->info]--;
            viz[i]=1;
            z++;
            cl[z]=i;
        }
    }
    }
    for(i=1;i<=n;i++)
        fout<<cl[i]<<" ";
    return 0;
}