Pagini recente » Cod sursa (job #3293763) | Cod sursa (job #1083351) | Cod sursa (job #2054651) | Cod sursa (job #354626) | Cod sursa (job #2716115)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int afis[500005],nr,n,m;
struct nod
{
int info,viz;
nod *urm;
};
nod *v[100005];
void adaug(int i,int j)
{
nod *q;
q=new nod;
q->info=j;
q->viz=0;
q->urm=v[i];
v[i]=q;
}
void euler(int k)
{
nod *q,*p;
q=v[k];
while (q!=NULL)
{
if (q->viz==0)
{
p=v[q->info];
while (p->info!=k or p->viz==1)
{
p=p->urm;
}
p->viz=q->viz=1;
euler(q->info);
}
q=q->urm;
}
/*for (i=1;i<=n;i++)
if (ma[k][i]==1)
{
ma[k][i]=ma[i][k]=0;
euler(i);
}*/
afis[++nr]=k;
}
int main()
{int i,j;
fin>>n>>m;
while (fin>>i>>j)
{
adaug(i,j);
adaug(j,i);
}
euler(1);
///fout<<nr<<'\n';
for (i=1;i<=nr;i++)
fout<<afis[i]<<" ";
return 0;
}