Cod sursa(job #1898787)

Utilizator Firealex2Rotileanu Alexandru Firealex2 Data 2 martie 2017 11:47:51
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <fstream>
#include <algorithm>
#include <queue>
#include <vector>

using namespace std;

int solutie[50001], l, N, M;
bool viz[50001];

ifstream fi("sortaret.in");
ofstream fo("sortaret.out");

vector<int> muchii[50001];

void dfs(int nod);
void citire();
void solve();


int main()
{
    citire();
    dfs(1);
    for(int i=l;i>=1;i--)
        fo<<solutie[i]<<" ";
    return 0;
}

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

    return;
}


void dfs(int nod)
{
    if(viz[nod])
        return;
    else viz[nod] = true;
    if(muchii[nod].size()==0)
        {
            solutie[++l] = nod;
            return;
        }
    else for(int i=0;i<muchii[nod].size();i++)
        dfs(muchii[nod][i]);
    solutie[++l] = nod;
    return;
}