Pagini recente » Cod sursa (job #317301) | Cod sursa (job #916162) | Cod sursa (job #2511915) | Cod sursa (job #86908) | Cod sursa (job #2307889)
#include <fstream>
#include <vector>
#include <stack>
#define input "sortaret.in"
#define output "sortaret.out"
#define NMAX 50005
using namespace std;
ifstream in(input);
ofstream out(output);
vector < int > vecini[NMAX];
vector < int > sol;
int noduri, arce, uz[NMAX];
void Read_Data()
{
in >> noduri >> arce;
for (int i = 1; i <= arce; i++)
{
int x, y;
in >> x >> y;
vecini[x].push_back(y);
}
}
void DFS(int nod)
{
uz[nod] = 1;
sol.push_back(nod);
for (unsigned i = 0; i < vecini[nod].size(); i++)
{
int new_nod = vecini[nod][i];
if (!uz[new_nod])
DFS(new_nod);
}
}
void Solve()
{
for (int i = 1; i <= noduri; i++)
if (!uz[i]) DFS(i);
}
void Print_Sol()
{
for (auto i = 0; i < sol.size(); i++)
out << sol[i] << " ";
}
int main()
{
Read_Data();
Solve();
Print_Sol();
return 0;
}