Pagini recente » Cod sursa (job #2688266) | Cod sursa (job #2863365) | Cod sursa (job #983563) | Cod sursa (job #79309) | Cod sursa (job #3165029)
#include <fstream>
#include <vector>
#include <bitset>
#include <algorithm>
std::ifstream fin("sortaret.in");
std::ofstream fout("sortaret.out");
const int nMax = 5e4 + 1;
std::vector<std::vector<int>> graf;
std::vector<int> sortare;
std::bitset<nMax> viz;
void dfs(int nod) {
viz[nod] = 1;
for(int next : graf[nod])
if(!viz[next])
dfs(next);
sortare.push_back(nod);
}
int main() {
int n, m;
fin >> n >> m;
graf.assign(n, std::vector<int>());
for(int i = 0; i < m; ++i) {
int x, y;
fin >> x >> y;
x -= 1, y -= 1;
graf[x].push_back(y);
}
for(int i = 0; i < n; ++i)
if(!viz[i])
dfs(i);
std::reverse(sortare.begin(), sortare.end());
for(int nod : sortare)
fout << nod + 1 << ' ';
graf.clear();
sortare.clear();
fin.close();
fout.close();
return 0;
}