Pagini recente » Cod sursa (job #1154433) | Cod sursa (job #3326296) | Cod sursa (job #815432) | Cod sursa (job #763903) | Cod sursa (job #3328215)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int n, m, grad[500010], i, a, b;
vector<vector<int>> mat;
queue <int> work;
int main()
{
in >> n >> m;
mat.resize(n+2);
for (i = 1; i <= m; i++)
{
in >> a >> b;
grad[b]++;
mat[a].push_back(b);
}
for (i = 1; i <= n; i++)
if (grad[i] == 0)
work.push(i);
while(!work.empty())
{
i = work.front();
out << i << ' ';
for (auto ind : mat[i])
{
grad[ind]--;
if (grad[ind] == 0)
work.push(ind);
}
work.pop();
}
return 0;
}