Pagini recente » Cod sursa (job #1841707) | Cod sursa (job #1508696) | Cod sursa (job #1860795) | Cod sursa (job #2508633) | Cod sursa (job #2132604)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define NMAX (50000 + 3)
#define MMAX (100000 + 3)
using namespace std;
int main() {
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n, m;
vector<int> neighbors[NMAX];
queue<int> queue;
int in[NMAX];
f >> n >> m;
for (; m; --m) {
int x, y;
neighbors[x].push_back(y);
++in[y];
}
for (int i = 1; i <= n; ++i) {
if (in[i] == 0) {
g << i << " ";
queue.push(i);
}
}
while (!queue.empty()) {
int x = queue.front();
queue.pop();
for (auto it = neighbors[x].begin(); it != neighbors[x].end(); ++it) {
--in[*it];
if (in[*it] == 0) {
g << *it << " ";
queue.push(*it);
}
}
}
return 0;
}