Cod sursa(job #2570041)

Utilizator AlexPop28Pop Alex-Nicolae AlexPop28 Data 4 martie 2020 14:48:25
Problema Sortare topologica Scor 20
Compilator cpp-64 Status done
Runda r3capitusulare Marime 0.7 kb
#include <bits/stdc++.h>
#define dbg() cerr <<
#define name(x) (#x) << ": " << (x) << ' ' <<

using namespace std;

const int NMAX = 100;

int order[NMAX];
bool vis[NMAX];
vector<int> adj[NMAX];

void DFS(int node, int &idx) {
  vis[node] = true;
  for (int &x : adj[node]) {
    if (!vis[x]) DFS(x, idx);
  }
  order[idx++] = node;
}

int main() {
  ifstream cin("sortaret.in");
  ofstream cout("sortaret.out");

  int n, m; cin >> n >> m;
  for (int i = 0; i < m; ++i) {
    int a, b; cin >> a >> b; --a, --b;
    adj[a].emplace_back(b);
  }

  int idx = 0;
  for (int i = 0; i < n; ++i) {
    if (!vis[i]) DFS(i, idx);
  }

  for (int i = n - 1; i >= 0; --i)
    cout << order[i] + 1 << ' ';
  cout << endl;
}