Cod sursa(job #1686218)

Utilizator BrandonChris Luntraru Brandon Data 12 aprilie 2016 09:43:25
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <vector>

using namespace std;

const int MaxN = 50005;

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

vector <int> G[MaxN];

int EnDeg[MaxN];
bool used[MaxN];
int n, m;

void Dfs(int node) {
  used[node] = true;
  cout << node << ' ';

  for(auto nxt: G[node]) {
    if(used[nxt]) {
      continue;
    }

    Dfs(nxt);
  }
}

int main() {
  cin >> n >> m;

  for(int i = 1; i <= m; ++i) {
    int a, b;
    cin >> a >> b;
    G[a].push_back(b);
    ++EnDeg[b];
  }

  for(int i = 1; i <= n; ++i) {
    if(!EnDeg[i] and !used[i]) {
      Dfs(i);
    }
  }

  return 0;
}