Pagini recente » Cod sursa (job #1977936) | Cod sursa (job #777533) | Cod sursa (job #2309486) | Cod sursa (job #2271620) | Cod sursa (job #3250863)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n, m, i, x, y, grad[50005], r[50005], k;
queue<int>s;
set<int>v[50005];
int main()
{
fin>>n>>m;
for (i=1; i<=m; i++) {
fin>>x>>y;
v[x].insert(y);
grad[y]++;
}
for (i=1; i<=n; i++) if (grad[i]==0) s.push(i);
while (!s.empty()) {
x=s.front();
s.pop();
for (auto i:v[x]) {
grad[i]--;
if (grad[i]==0) s.push(i);
}
r[++k]=x;
}
for (i=1; i<=n; i++) fout<<r[i]<<' ';
return 0;
}