Pagini recente » Cod sursa (job #3156038) | Cod sursa (job #2820795) | Cod sursa (job #1531397) | Cod sursa (job #1124699) | Cod sursa (job #2721007)
#include <fstream>
#include <vector>
#include <queue>
#define N 50005
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int n, m;
vector<vector<int> > graf(N);
vector<int> rezultat;
queue<int> coada;
bool vizitat[N];
void sortareTopologica(){
int nod = coada.front();
coada.pop();
vizitat[nod] = 1;
for(size_t i = 0; i < graf[nod].size(); ++i)
if(!vizitat[graf[nod][i]]){
coada.push(graf[nod][i]);
sortareTopologica();
}
rezultat.push_back(nod);
}
int main()
{
in>>n>>m;
for(int i = 1; i <= m; ++i){
int x, y;
in>>x>>y;
graf[x].push_back(y);
}
for(int i = 1; i <= n; ++i)
if(!vizitat[i]){
coada.push(i);
sortareTopologica();
}
for(int i = n - 1; i >= 0; --i)
out<<rezultat[i]<<" ";
in.close();
out.close();
return 0;
}