Pagini recente » Cod sursa (job #2708453) | Cod sursa (job #2421473) | Cod sursa (job #1103266) | Cod sursa (job #505139) | Cod sursa (job #2556926)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
vector<int> graph[50003];
queue<int> Q;
int n, m, adancime[50003];
void citire() {
f >> n >> m;
int x, y;
for (int i = 0; i < m; i++) {
f >> x >> y;
graph[x].push_back(y);
adancime[y]++;
}
for (int i = 1; i <= n; i++) {
if (adancime[i] == 0)
Q.push(i);
}
}
void rezolvare() {
while (!Q.empty()) {
int tata = Q.front();
Q.pop();
g << tata << " ";
for (auto &v:graph[tata]) {
adancime[v]--;
if (adancime[v] == 0)
Q.push(v);
}
}
}
int main() {
citire();
rezolvare();
return 0;
}