#包括#包括#如果指数M#定义M 9#结尾#定义N(1<<(2*M))#定义MASK((1<k) {tmp=k;k=i;i=tmp;}如果(j>k){tmp=k;k=j;j=tmp;}如果(j<i){tmp=i;i=j;j=tmp;}返回(j-i)<>M&MASK);k=总和i-j;距离[n]=k>M&MASK);k=总和i-j;if(dist[move(i,k,j)]==nmoves || dist[move(j,i,k)]==nmoves || dist[move(i,j,k)]==nmoves){dist[witn=n]=n移动+1;l++;}}}i=witn&MASK;j=i+(含M&MASK);k=总和i-j;printf(“%d DIAM%d见证(%d,%d,%d)\n”,l,nmoves,i,j,k);}}