Pagini recente » Cod sursa (job #195632) | Cod sursa (job #2714677) | Cod sursa (job #1700245) | Cod sursa (job #685554) | Cod sursa (job #2216012)
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
int n, m, x, y, grad[50001];
queue <int> nodes;
vector <int> g[50001];
int main() {
fin >> n >> m;
for (int i = 1; i <= m; ++i) {
fin >> x >> y;
g[x].push_back(y);
++grad[y];
}
for (int i = 1; i <= n; ++i) {
if (grad[i] == 0)
nodes.push(i);
}
// fout << sizeof(g) + sizeof(grad) << '\n';
while (!nodes.empty()) {
int nod = nodes.front();
while (!g[nod].empty()) {
if (--grad[g[nod].front()] == 0)
nodes.push(g[nod].front());
g[nod].erase(g[nod].begin());
}
fout << nod << ' ';
nodes.pop();
}
}