Cod sursa(job #2348825)

Utilizator CoroloHorjea Cosmin Corolo Data 20 februarie 2019 00:26:55
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#include <vector>
#include <stack>
#define NMAX 50005
using namespace std;

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

int n, m;
bool viz[NMAX];
vector<int> A[NMAX];
stack<int> Sort;

void citire()
{
      fin >> n >> m;
      for (; m; m--)
      {
            int x, y;
            fin >> x >> y;
            A[x].push_back(y);
      }
}
void DFS(int sursa)
{
      viz[sursa] = true;
      for (size_t i = 0; i < A[sursa].size(); i++)
      {
            if (!viz[A[sursa][i]])
                  DFS(A[sursa][i]);
      }
      Sort.push(sursa);
}

int main()
{

      citire();
      for (int i = 1; i <= n; i++)
      {
            if (!viz[i])
                  DFS(i);
      }
      while (!Sort.empty())
      {
            fout << Sort.top() << ' ';
            Sort.pop();
      }
      return 0;
}