Pagini recente » Cod sursa (job #2880895) | Cod sursa (job #1332933) | Cod sursa (job #753632) | Cod sursa (job #2561508) | Cod sursa (job #472582)
Cod sursa(job #472582)
#include <cstdio>
#include <list>
#include <vector>
#define N 100001
using namespace std;
struct muc
{int m;
int i;
bool b;
};
typedef list<int>::iterator LIT;
typedef vector<muc>::iterator IT;
vector<muc> vec[N];
list<int> lista;
void euler(int k,LIT lit)
{lista.insert(lit,k);
LIT temp;
for (IT it=vec[k].begin(); it!=vec[k].end();it++)
{if(it->b==true)
{it->b=false;
vec[it->m][it->i].b=false;
temp=lit;temp++;
euler(it->m,temp);
}
}
}
int main ()
{freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
int n,m,x,y,i,s1,s2;
scanf("%d %d",&n,&m);
for (i=1;i<=m;i++)
{scanf("%d %d",&x,&y);
s1=vec[x].size();
s2=vec[y].size();
vec[x].push_back((muc){y,s2,false});
vec[y].push_back((muc){x,s1,false});
}
euler(1,lista.begin());
for (LIT lit=lista.begin();lit!=lista.end();lit++)
{printf("%d",*lit);
}
return 0;
}