Pagini recente » Cod sursa (job #1374053) | Cod sursa (job #1320588) | Cod sursa (job #1075686) | Cod sursa (job #3267950) | Cod sursa (job #2576712)
#include <fstream>
#include <iostream>
#include <stack>
#include <vector>
using namespace std;
#ifndef _x
//comment to use ConsoleIO
#define ____FILE 1
#ifdef ____FILE
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
#else
#define fin cin
#define fout cout
#endif
//comment to use default 64-bit integers
#define ____LL 1
#ifndef ____LL
#define int int64_t
#endif
#endif
#define __MaxN 50005
stack<int>Stiva;
int Vizitat[__MaxN];
vector<int>Edges[__MaxN];
int n, m, x, y;
void DFS(int poz){
Vizitat[poz] = 1;
for (int i = 0; i < Edges[poz].size(); ++i)
if (Vizitat[Edges[poz][i]] == 0) {
DFS(Edges[poz][i]);
}
Stiva.push(poz);
}
int32_t main(){
fin >> n >> m;
for (int i = 1; i <= m; ++i)
fin >> x >> y, Edges[x].push_back(y);
for (int i = 1; i <= n; ++i) {
if(Vizitat[i]==0)
DFS(i);
}
while (!Stiva.empty())
fout << Stiva.top()<<' ',Stiva.pop();
}