Cod sursa(job #2786185)

Utilizator iancupoppPopp Iancu Alexandru iancupopp Data 20 octombrie 2021 15:06:02
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

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

const int N = 50005;

vector<int> gr[N];
int pred[N], n;

void sortaret() {
  queue<int> q;
  for (int i = 1; i <= n; ++i)
    if (!pred[i])
      q.push(i);
  while (!q.empty()) {
    auto nod = q.front();
    q.pop();
    cout << nod << " ";
    for (auto vec : gr[nod])
      if (!--pred[vec])
        q.push(vec);
  }
}
int main() {
  int m;
  cin >> n >> m;
  while (m--) {
    int x, y;
    cin >> x >> y;
    gr[x].push_back(y);
    ++pred[y];
  }
  cin.close();
  sortaret();
  cout.close();
  return 0;
}