Pagini recente » Cod sursa (job #2389505) | Cod sursa (job #1113470) | Cod sursa (job #1438293) | Cod sursa (job #1682523) | Cod sursa (job #1798997)
#include<stdio.h>
#include<stdlib.h>
int n,m,a[201][201],k=0;
int v[41000];
void citire(){
int i,x,y;
scanf("%d",&n);
while(scanf("%d%d",&x,&y)!=EOF){
a[x][y]=1;
a[y][x]=1;
m++;
}
}
void dfs ( int nod){
int i;
if(k==m){
printf("%d\n",k+1);
for(i=1;i<=k;i++)
printf("%d ",v[i]);
printf("%d \n",v[1]);
exit(0);
}
else{
k++;
v[k]=nod;
for(i=1;i<=n;i++){
if(a[nod][i]==1){
a[nod][i]=0;
a[i][nod]=0;
dfs(i);
}
}
a[nod][v[k-1]]=1;
a[v[k-1]][nod]=1;
k--;
}
//}
}
int main(){
int i;
freopen("euler.in","r",stdin);
freopen("euler.out","w",stdout);
citire();
dfs(1);
n=k;
/*//if(k==m-1&&a[v[k]][v[1]]==1){
printf("%d\n",m+1);
for(i=1;i<=m+1;i++)
printf("%d ",v[i]);
//}*/
return 0;
}