Pagini recente » Cod sursa (job #2243530) | Cod sursa (job #356402) | Cod sursa (job #2688848) | Cod sursa (job #185148) | Cod sursa (job #427153)
Cod sursa(job #427153)
#include <stdio.h>
#include <list>
#define IN "ciclueuler.in"
#define OUT "ciclueuler.out"
#define Lg 100001
using namespace std;
int n, m, a, b;
int Rez[Lg*5], nr, top, nod;
list <int> :: iterator it;
list <int> V[Lg];
void citire()
{
scanf ("%d %d", &n, &m);
for (int i=0; i<m; i++)
{
scanf ("%d %d", &a, &b);
V[a].push_back(b);
V[b].push_back(a);
}
}
void solve()
{
Rez[nr = 1] = 1;
while (nr)
{
top=Rez[nr];
if (!V[top].empty())
{
nod = V[top].front();
V[top].pop_front();
for (it=V[nod].begin(); it!=V[nod].end() && *it!=top; it++);
V[nod].erase(it);
Rez[++nr] = nod;
}
else
printf("%d ",Rez[nr--]);
}
}
int main()
{
freopen (IN ,"r", stdin);
freopen (OUT,"w", stdout);
citire();
solve();
return 0;
}