Pagini recente » Cod sursa (job #563162) | Cod sursa (job #2089860) | Cod sursa (job #910025) | Cod sursa (job #3215783) | Cod sursa (job #2195937)
#define DM 50001
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
ifstream fi ("sortaret.in");
ofstream fo ("sortaret.out");
int n, m, a, b, apr[DM];
queue <int> q;
vector <int> v[DM], sol;
void propag()
{
for (int i = 1; i <= n; ++i)
if (!apr[i])
q.push(i);
while (!q.empty())
{
a = q.front();
q.pop();
for (auto i:v[a])
{
--apr[i];
if (!apr[i])
q.push(i);
}
sol.push_back(a);
}
}
int main()
{
fi >> n >> m;
for (int i = 1; i <= m; ++i)
{
fi >> a >> b;
v[a].push_back(b);
++apr[b];
}
propag();
for (auto i:sol)
fo << i << ' ';
return 0;
}