Cod sursa(job #2219843)

Utilizator andreim98Andrei Manolache andreim98 Data 9 iulie 2018 21:34:02
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include<fstream>
using namespace std;

ifstream fin("sortaret.in");
ofstream fout("sortaret.out");

struct nod
{
    int info;
    nod*urm;
};



void ad_in(nod*&prim,int x)
{
    nod*q;
    q=new nod;
    q->info=x;
    q->urm=prim;
    prim=q;
}

nod*v[50001];
int viz[50001];
void df(int x,int w[],int &k)
{
    viz[x]=1;
    nod*q;
    q=new nod;
    for(q=v[x];q!=NULL;q=q->urm)
    {
        if(viz[q->info]==0)
            df(q->info,w,k);
    }
    w[++k]=x;
}

int main()
{
   int n,m,x,y,w[50001],k=0,i;
   fin>>n>>m;

   for(i=1;i<=m;i++)
   {
       fin>>x>>y;
       ad_in(v[x],y);
   }

   for(i=1;i<=n;i++)
    if(!viz[i])
    df(i,w,k);

    for(i=n;i>=1;i--)
    fout<<w[i]<<' ';

    return 0;
}