Cod sursa(job #2917235)

Utilizator raresgherasaRares Gherasa raresgherasa Data 3 august 2022 21:08:48
Problema Sortare topologica Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NM = 5e4 + 5;

vector<int>g[NM], ans, w;
int n, m;
bool used[NM];

void dfs (int nod){
  w.push_back(nod);
  used[nod] = true;
  for (int u : g[nod]){
    if (used[u] == false){
      dfs(u);
    }
  }
}

int main(){
  fin >> n >> m;
  for (int i = 1; i <= m; i++){
    int x, y; fin >> x >> y;
    g[x].push_back(y);
  }
  for (int i = 1; i <= n; i++){
    if (used[i] == false){
      dfs(i);
    }
    reverse(w.begin(), w.end());
    for (int i = 0; i < (int)w.size(); i++){
      ans.push_back(w[i]);
    }
    w.clear();
  }
  reverse(ans.begin(), ans.end());
  for (int x : ans){
    fout << x << " ";
  }
}