Pagini recente » Cod sursa (job #1545398) | Cod sursa (job #2721936) | Cod sursa (job #2442269) | Cod sursa (job #1514877) | Cod sursa (job #2132325)
#include <iostream>
#include <fstream>
#include <vector>
#include <bits/stdc++.h>
#include <queue>
#include <unordered_set>
#include <algorithm>
using namespace std;
std::ifstream in("sortaret.in");
std::ofstream out("sortaret.out");
int main()
{
int n,m;
set<int> To[50003],Fro[50003];
queue<int> S,L;
in >> n >> m;
int x,y;
for(int i = 0 ; i <m ; i++)
{
in >> x >> y;
To[x].insert(y);
Fro[y].insert(x);
}
for(int i = 1 ; i <= n; i++)
if(Fro[i].size()==0)
S.push(i);
while(!S.empty())
{
int no = S.front(); S.pop();
L.push(no);
while(To[no].size()!=0)
{
int mo = *To[no].begin();
To[no].erase(mo);
Fro[mo].erase(no);
if(Fro[mo].size() == 0)
S.push(mo);
}
}
while(!L.empty())
out<<L.front()<<" ",L.pop();
return 0;
}