#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
#define MAXN (60+5)
int start[MAXN], final[MAXN];
long long dfs(int* begin, int now, int n_z){
if(!now) return 0;
if(begin[now] == n_z) return dfs(begin, now-1, n_z);
return dfs(begin, now-1, 6-begin[now]-n_z) + (1LL << (now-1));
}
int main(){
int n, t = 0;
while(scanf("%d", &n) != EOF && n){
for(int i = 1; i <= n; i++) scanf("%d", &start[i]);
for(int i = 1; i <= n; i++) scanf("%d", &final[i]);
int k = n;
while(k && start[k] == final[k]) k--;
long long ans = 0;
if(k){
int mid = 6 - start[k] - final[k];
ans = dfs(start, k-1, mid) + dfs(final, k-1, mid) + 1;
}
printf("Case %d: %lld\n", ++t, ans);
}
return 0;
}
uva 10795
最新推荐文章于 2016-07-19 09:47:35 发布