Pagini recente » Cod sursa (job #907324) | Cod sursa (job #896187) | Cod sursa (job #2809911) | Cod sursa (job #614368) | Cod sursa (job #2567875)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout ("sortaret.out");
const int Nlim = 50001;
const int Mlim = 100001;
int N,M,k;
vector <int> muchii[Mlim];
int vizitat[Nlim] ,sol[Nlim];
void dfs (int nod)
{
vizitat[nod] = 1;
sol[++k] = nod;
for (unsigned int i = 0 ;i < muchii[nod].size() ;i++)
{
int vecin = muchii[nod][i];
if (!vizitat[vecin])
dfs(vecin);
}
}
void read()
{
fin >> N >> M;
for (int i = 1 ;i <= M ;i++)
{
int x ,y;
fin >> x >> y;
muchii[x].push_back(y);
}
}
void rezolvare ()
{
for (int i = 1; i <= N ;i++)
{
if (vizitat[i] == 0)
{
dfs(i);
}
}
for (int i = 1 ;i <= k ;i++)
fout << sol[i] << " ";
}
int main()
{
read();
rezolvare();
}