Pagini recente » Cod sursa (job #3125772) | Cod sursa (job #1438156) | Cod sursa (job #452754) | Cod sursa (job #961677) | Cod sursa (job #2671354)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
vector<int> adiacenta[100001];
vector <int> sortare;
bool viz[100001] = {false};
int n,m,x,y;
void citire(){
f>>n>>m;
for(int i =1; i <=m ;i++){
f>>x>>y;
adiacenta[x].push_back(y);
}
}
void DFS(int nod){
viz[nod] = true;
for(int i=0; i<adiacenta[nod].size(); i++){
if(!viz[adiacenta[nod][i]])
DFS(adiacenta[nod][i]);
}
sortare.push_back(nod);
}
void afisare(){
reverse(sortare.begin(), sortare.end());
for(int i=0; i< sortare.size(); i++)
g<<sortare[i]<<" ";
g<<"\n";
}
int main(){
citire();
for(int i = 1; i <= n; i++){
if(!viz[i])
DFS(i);
}
afisare();
return 0;
}