Pagini recente » Cod sursa (job #1524570) | Cod sursa (job #393336)
Cod sursa(job #393336)
#include<fstream>
using namespace std;
#define nn 100005
struct nod
{
int info;
nod *next;
};
nod *g[nn],*t;
int n,m,v[nn],d;
void adauga(int a,int b)
{
nod *t=new nod;
t->info=b;
t->next=g[a];
g[a]=t;
}
void euler(int i)
{
while(g[i])
{
int k=g[i]->info;
t=g[i];//sterg un nod
g[i]=g[i]->next;
delete t;
euler(k);
}
v[++d]=i;
}
int main()
{
int a,b,i;
ifstream fin("ciclueuler.in");
for(fin>>n>>m,d=m;d;--d)
{
fin>>a>>b;
adauga(a,b);
adauga(b,a);
}
fin.close();
//rezolvare
euler(1);
/*
i=1;
for(t=g[i];t;t=t->next)
while(g[i])
{
v[++d]=g[i]->info;//il adaug in stiva
//euler
t=g[i];//sterg un nod
g[i]=g[i]->next;
delete t;
}
*/
FILE *f=fopen("ciclueuler.out","w");
if(d==m)
for(i=1;i<=n;++i)
fprintf(f,"%d",v[i]);
else
fprintf(f,"%d",-1);
fclose(f);
return 0;
}