Cod sursa(job #2512950)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 21 decembrie 2019 23:51:50
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <cstdio>
#include <vector>

using namespace std;

int N, M;
vector<vector<int> > G;
vector<bool> used;

void DFS(int k)
{
  used[k] = true;
  for (auto it : G[k]) {
    if (!used[it]) {
      DFS(it);
    }
  }
  printf("%d ", k);
}
  
int main()
{
  freopen("sortaret.in", "r", stdin);
  freopen("sortaret.out", "w", stdout);

  scanf("%d%d", &N, &M);

  G.resize(N + 1);
  used.resize(N + 1);
  
  for (int i = 1; i <= M; ++i) {
    int a,b;
    scanf("%d%d", &a, &b);
    G[b].emplace_back(a);
  }

  for (int i = 1; i <= N; ++i) {
    if (!used[i]) {
      DFS(i);
    }
  }
  
  return 0;
}