Cod sursa(job #2350793)

Utilizator mihnea_toaderToader Mihnea mihnea_toader Data 21 februarie 2019 18:35:11
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>

using namespace std;

int n,m,ap[50000],sfin[50000],k=0;

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

struct nod {
    int val;
    nod *next;
}*a[100000];

void citire ()
{
    int x,y;
    fin>>n>>m;
    for (int i=0;i<m;i++)
    {
        fin>>x>>y;
        nod *aux = new nod;
        aux->val=y;
        aux->next=a[x];
        a[x]=aux;
    }
}

void dfs (int x)
{
    sfin[k++]=x;
    ap[x]=1;

    for (nod *aux = a[x];aux;aux=aux->next)
        if (ap[aux->val]==0)
    {
        dfs(aux->val);
    }
}

int main()
{
    citire();
    for (int i=1;i<=n;i++)
    {
        if(ap[i]==0)
            dfs(i);
    }
    for (int i=0;i<k;i++)
        fout<<sfin[i]<<" ";
    return 0;
}