Pagini recente » Cod sursa (job #1131836) | Cod sursa (job #1522631) | Cod sursa (job #2771730) | Cod sursa (job #127371) | Cod sursa (job #796960)
Cod sursa(job #796960)
#include <cstdio>
#include <vector>
#include <list>
#include <cstring>
#define pb push_back
#define MAXN 100010
using namespace std;
vector<int> G[MAXN];
list <int> Q;
int nc,nr,i,k,n,m,x,y;
bool ok;
void euler(int x)
{
vector<int>::iterator it;
Q.pb(x);
while (!Q.empty())
{
x=Q.front();
if(G[x].empty())
{
Q.pop_front();
printf("%d ",x);
}
else
{
int i=G[x].back();
Q.push_front(i);
G[x].pop_back();
for(it=G[i].begin();it!=G[i].end();++it)
if(*it==x)
{
G[i].erase(it);
break;
}
}
}
}
int main()
{
freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
scanf("%d%d",&n,&m);
for(; m>0; --m)
{
scanf("%d%d",&x,&y);
G[x].pb(y);
G[y].pb(x);
}
euler(1);
printf("\n");
return 0;
}