Pagini recente » Istoria paginii runda/ki/clasament | Cod sursa (job #1189605) | Cod sursa (job #874993) | Cod sursa (job #1487138) | Cod sursa (job #2721231)
#include <bits/stdc++.h>
#define nlim 100005
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n, m, gr[nlim];
vector<int> v[nlim];
int q[nlim];
void citire() {
f >> n >> m;
for (int i = 1; i <= m; ++i) {
int x, y;
f >> x >> y;
v[x].push_back(y);
++gr[y];
}
}
void rez() {
for (int i = 1; i <= n; ++i)
if (gr[i] == 0) q[++q[0]] = i;
for (int i = 1; i <= n; ++i) {
int x = q[i];
for (vector<int>::iterator it = v[x].begin(); it != v[x].end(); ++it) {
--gr[*it];
if (gr[*it] == 0) q[++q[0]] = *it;
}
}
}
void afis() {
for (int i = 1; i <= n; ++i)
g << q[i] << " ";
}
int main()
{
citire();
rez();
afis();
}