Pagini recente » Cod sursa (job #661866) | Cod sursa (job #2428543) | Istoria paginii utilizator/cristianbudin | Cod sursa (job #2040725) | Cod sursa (job #1326076)
#include<fstream>
using namespace std;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
struct lista{int nod;
lista *leg,*adr;} *G[100001],*MUC[500001];
int n,m,i,Sol[500001],l,lim=0;
void adaug(int i,int j)
{
lista *p;
p=new lista;
p->nod=j;
p->leg=G[i];
// MUC[l]->nod=1;
p->adr=MUC[l];
G[i]=p;
}
void citire()
{
int i,j;
f>>n>>m;
for(l=1;l<=m;++l)
{
lista *q;
q=new lista;
MUC[l]=q;
f>>i>>j;
adaug(i,j);
adaug(j,i);
}
}
void Euler(int nod)
{
lista *p;
// g<<nod<<'\n';
for(p=G[nod];p;p=p->leg)
{
// g<<p->nod<<"*"<<'\n';
if(p->adr->nod)
{
//g<<p->nod<<"*"<<'\n';
p->adr->nod=0;
Euler(p->nod);
}
}
Sol[++lim]=nod;
}
int main()
{
citire();
//EulerCheck();
Euler(1);
for(i=1;i<lim;++i) g<<Sol[i]<<" ";
g<<'\n';
return 0;
}