Pagini recente » Cod sursa (job #898884) | Cod sursa (job #1661754) | Cod sursa (job #2955123) | Cod sursa (job #761249) | Cod sursa (job #2897872)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("sortaret.in");
ofstream out ("sortaret.out");
int n, m;
vector <int> v[50001];
queue <int> q;
int grad[500001];
main ()
{
in >> n >> m;
for (int i = 1;i<=m;++i)
{
int a, b;
in >> a >> b;
v[a].push_back(b);
grad[b]++;
}
for (int i = 1;i<=n;++i)
if (grad[i] == 0)
q.push(i);
vector <int> ans;
while (!q.empty())
{
int nod = q.front();
q.pop();
ans.emplace_back(nod);
for (auto vecin:v[nod])
{
grad[vecin]--;
if (grad[vecin] == 0)
q.push(vecin);
}
}
for (auto it:ans)
out << it << ' ';
return 0;
}