Cod sursa(job #2710508)

Utilizator IuliaDamianDamian Iulia Alexandra IuliaDamian Data 22 februarie 2021 17:21:26
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");

vector < int > edges[100001];
stack < int > stiva;
int n, m, x, y;
bool vizitat[100001];

void dfs(int nod) {
  vizitat[nod] = true;

  for (auto i: edges[nod])
    if (!vizitat[i]) {
      vizitat[i] = true;
      dfs(i);
    }

  stiva.push(nod);
}
int main() {
  fin >> n >> m;
  for (int i = 1; i <= m; i++) {
    fin >> x >> y;
    edges[x].push_back(y);
  }

  for (int i = 1; i <= n; i++)
    if (!vizitat[i])
      dfs(i);

  while (!stiva.empty()) {
    fout << stiva.top() << " ";
    stiva.pop();
  }
}