Pagini recente » Cod sursa (job #439819) | Cod sursa (job #546944) | Cod sursa (job #1974592) | Cod sursa (job #3177556) | Cod sursa (job #2902891)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
vector<int> vecini[100001];
vector<int> ciclu;
void stergere_muchie(int v, int w)
{
int cnt = 0;
for(auto i : vecini[v])
{
if(i == w)
{
vecini[v].erase(vecini[v].begin()+cnt);
break;
}
cnt++;
}
cnt = 0;
for(auto i : vecini[w])
{
if(i == v)
{
vecini[w].erase(vecini[w].begin()+cnt);
break;
}
cnt++;
}
}
void euler(int v)
{
while( !vecini[v].empty() )
{
int w = vecini[v].back();
vecini[v].pop_back();
stergere_muchie(v, w);
//cout << 0;
euler(w);
}
ciclu.push_back(v);
}
void citire()
{
int n, m;
fin >> n >> m;
for(; m; --m)
{
int a, b;
fin >> a >> b;
vecini[a].push_back(b);
vecini[b].push_back(a);
}
}
void afisare()
{
for(auto j : ciclu)
fout << j << ' ';
}
int main()
{
citire();
euler(1);
ciclu.pop_back();
afisare();
return 0;
}