Neighbor House LightOJ - 1047
1 #include<cstdio>
2 #include<cstring>
3 #include<algorithm>
4 using namespace std;
5 int T,TT,n;
6 int a[22][22],ans[22][22];
7 int main()
8 {
9 int i,j,k;
10 scanf("%d",&T);
11 for(TT=1;TT<=T;TT++)
12 {
13 scanf("%d",&n);
14 for(i=1;i<=n;i++)
15 for(j=0;j<3;j++)
16 scanf("%d",&a[i][j]);
17 memset(ans,0x3f,sizeof(ans));
18 ans[1][0]=a[1][0];
19 ans[1][1]=a[1][1];
20 ans[1][2]=a[1][2];
21 for(i=2;i<=n;i++)
22 for(j=0;j<3;j++)
23 for(k=0;k<3;k++)
24 {
25 if(j==k) continue;
26 ans[i][j]=min(ans[i][j],ans[i-1][k]+a[i][j]);
27 }
28 printf("Case %d: %d
",TT,*min_element(ans[n],ans[n]+3));
29 }
30 return 0;
31 }