Pagini recente » Cod sursa (job #130427) | Cod sursa (job #1541087) | Cod sursa (job #3132305) | Cod sursa (job #2219622) | Cod sursa (job #1613174)
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <stack>
#include <queue>
#include <vector>
using namespace std;
ifstream cin("ciclueuler.in");
ofstream cout("ciclueuler.out");
int n,m,i,j,nr,sta;
stack <int> T;
queue <int> F;
vector<int> a[100001];
void DFS(int Vf)
{
T.push(Vf);
int k=1;
for(int z=0;z<a[Vf].size();++z)
{
int aux=a[Vf].back();
a[Vf].pop_back();
for(k=0;k<a[aux].size();++k)
if(a[aux][k]==Vf)
break;
a[aux].erase(a[aux].begin()+k);
DFS(aux);
}
F.push(T.top());
T.pop();
}
int main()
{
cin>>n>>m;
for(int z=1;z<=m;++z)
{
cin>>i>>j;
a[i].push_back(j);
a[j].push_back(i);
}
DFS(1);
while(!T.empty())
{
F.push(T.top());
T.pop();
}
//while(!F.empty())
while(F.size()!=1)
{
cout<<F.front()<<' ';
F.pop();
}
return 0;
}