Cod sursa(job #2862669)

Utilizator vladp1324Vlad Pasare vladp1324 Data 5 martie 2022 18:03:52
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <vector>

using namespace std;

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

int n, m, k, ord[50001];
vector < int > v[50001];
bool ver[50001];

void dfs (int nc) {
  ver[nc] = true;
  for (int i = 0; i < v[nc].size (); i++) {
    int nv = v[nc][i];
    if (not ver[nv])
      dfs(nv);
  }
  ord[++k] = nc;
}

int main()
{
  fin >> n >> m;
  for (int i = 1; i <= m; i++) {
    int x, y;
    fin >> x >> y;
    v[x].push_back (y);
  }
  for (int i = 1; i <= n; i++)
    if (not ver[i])
      dfs (i);
  for (int i = n; i >= 1; i--)
    fout << ord[i] << ' ';
  return 0;
}