Pagini recente » Monitorul de evaluare | Cod sursa (job #699491) | Monitorul de evaluare | Cod sursa (job #3199059) | Cod sursa (job #3334799)
#include <iostream>
#include <random>
#include <fstream>
#include <bitset>
#include <algorithm>
#include <queue>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector<int> L[50005];
int in[50005];
int main() {
int n,m;
fin>>n>>m;
while (m--) {
int x,y;
fin>>x>>y;
L[x].push_back(y);
in[y]++;
}
priority_queue <int, vector<int>, greater<int>> pq;
for (int i=1; i<=n; i++)
if (in[i]==0)
pq.push({i});
while (!pq.empty()) {
fout<<pq.top()<<" ";
int curr=pq.top();
pq.pop();
for (auto it:L[curr]) {
in[it]--;
if (in[it]==0)
pq.push(it);
}
}
return 0;
}
// num=10,/=11,*=12,-=13,+=14,enter=15,.=16,