Cod sursa(job #2310201)

Utilizator justsomedudePalade Thomas-Emanuel justsomedude Data 30 decembrie 2018 19:47:25
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;

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

int N, M;
bool viz[50002];
int nodes[50002], cnt;
vector <int> L[50002];

void DFS_final(int k)
{
   viz[k] = 1;
   for (int j = 0; j < L[k].size(); j++)
   {
	if (!viz[L[k][j]])
	{
	    DFS_final(L[k][j]);
	}
   }
   nodes[++cnt] = k;
}

int main ()
{
   int x, y;
   fin >> N >> M;
   for (int i = 0; i < M; i++)
   {
	fin >> x >> y;
	L[x].push_back(y);
   }
   for (int i = 1; i <= N; i++)
    if (!viz[i])
        DFS_final(i);

   for (int i = N; i >= 1; i--)
        fout << nodes[i] << " ";
   fout << endl;
   return 0;
}