Pagini recente » Cod sursa (job #3210333) | Cod sursa (job #998017) | Cod sursa (job #1796234) | Cod sursa (job #2324565) | Cod sursa (job #2660242)
#include <fstream>
#include <vector>
#include <stack>
std :: ifstream f ("sortare.in");
std :: ofstream g ("sortare.out");
std :: vector <int > viz(50001);
std :: vector <int> list[50001];
std :: stack <int> stk;
void DFS (int nod);
int main(){
int n, m;
f >> n >> m;
for (int i = 1; i <= m; i++){
int x, y;
f >> x >> y;
list[x].push_back(y);
}
for ( int i = 1; i <= n; i++)
if (viz[i] == 0 )
DFS(i);
while (!stk.empty()){
g << stk.top() << " ";
g << "\n";
stk.pop();
}
}
void DFS (int nod){
viz[nod] = 1;
for (auto elem : list[nod])
if(!viz[elem])
DFS(elem);
stk.push(nod);
}