Cod sursa(job #2666078)

Utilizator DariaCretuCretu Daria Stefana DariaCretu Data 31 octombrie 2020 19:45:49
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

int viz[100001], i, ultim, N, M, x, y, S[100001], copil, j;
vector <int> muchii[100001];

void DFS( int nod )
{

    viz[nod] = 1;


    for ( j = 0; j < muchii[nod].size(); j++)
        {
            copil = muchii[nod][j];
            if(viz[copil] == 0)
               {
                  S[++ultim] = copil;
                  DFS(copil);
               }
        }



}

void citire()
{
    f >> N >> M;
    for ( i = 1; i <= M; i++ )
        {
            f >> x >> y;
            muchii[x].push_back(y);
        }
}

int main()
{
    citire();

    for ( i = 1; i <= N; i++)
        if ( viz[i] == 0 )
            { S[++ultim] = i; DFS(i); }

    for ( i = 1; i <= ultim; i++ )
        g << S[i] << " ";

    return 0;
}