AC代码如下:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
long long cnt_step( int *p, int i, int to ){
if( i == 0 ){
return 0;
}
if( p[i] == to ) return cnt_step( p, i - 1, to );
return cnt_step( p, i - 1, 6 - p[i] - to ) + ( 1LL << ( i - 1 ) );
}
int main(){
int start[70], final[70], N, Case = 1;
long long ans;
while( scanf( "%d", &N ) && N ){
for( int i = 1; i <= N; i++ ){
scanf( "%d", &start[i] );
}
for( int i = 1; i <= N; i++ ){
scanf( "%d", &final[i] );
}
int temp = N;
while( temp >= 1 && start[temp] == final[temp] ) temp--;
ans = 0;
if( temp ){
int to = 6 - start[temp] - final[temp];
ans = cnt_step( start, temp - 1, to ) + cnt_step( final, temp - 1, to ) + 1;
}
printf( "Case %d: %lld\n", Case++, ans );
}
return 0;
}