Pagini recente » Cod sursa (job #1856762) | Cod sursa (job #440334) | Cod sursa (job #407932) | Cod sursa (job #1060303) | Cod sursa (job #2518401)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int const nLim = 50005;
vector < int > Arce[nLim];
bool vizitat[nLim];
int n, m;
int sortare[nLim], indiceSort = 0;
void DFS(int i) {
vizitat[i] = true;
for(unsigned int j = 0; j < Arce[i].size(); j ++) {
int next = Arce[i][j];
if(!vizitat[next]) {
DFS(next);
}
}
sortare[++indiceSort] = Arce[i];
}
void citire() {
fin >> n >> m;
for(int i = 1; i <= m; i ++) {
int x, y;
fin >> x >> y;
Arce[x].push_back(y);
}
for(int i = 1; i <= n; i ++) {
if(!vizitat[i])
DFS(i);
}
for(int i = indiceSort; i >= 1; i --){
fout << sortare[i] << " ";
}
}
int main() {
citire();
return 0;
}