#include<stdio.h> int step[99][99]; int sum; int min=999999; int cas; int N; int H; int V; int C1; int R1; int M1; int C2; int R2; int M2; int ans[15]; int bu[15]; int ju[15]; void ji(int n) { int i; int j; int a; for(i=0;i<H;i++) { sum=0; for(j=0;j<i;j++) { sum=sum+C1*step[n][j]; } if(sum>min) continue; for(a=j;a<H;a++) { sum=sum+C2*step[n][a]; } if(sum>min) continue; if(H-1-i-i==0||H-1-i-i==-1||H-1-i-i==1) { if(min>sum) { min=sum; } } else { if(H-1-i-i>0) sum=sum+(H-1-i-i)*R2; else sum=sum-(H-1-i-i)*R1; if(min>sum) { min=sum; } }
} } void qu(int a,int st) { if(st==N) { sum=0; for(int i=0;i<N;i++) sum=sum+bu[i]; for(int i=0;i<=N-2;i++) sum=sum+(M1*M1+M2*M2)*(ju[i+1]-ju[i]); if(min>sum) { min=sum; } return; } for(int i=a;i<V;i++) { ju[st]=i; bu[st]=ans[i]; qu(i+2,st+1); } } int main() { freopen("in.txt","r",stdin); int o=1; int r; scanf("%d",&cas); while(o!=cas+1) { scanf("%d%d%d",&N,&H,&V); for(int i=0;i<V;i++) { for(int j=0;j<H;j++) { scanf("%d",&step[i][j]); } } scanf("%d%d%d",&C1,&R1,&M1); scanf("%d%d%d",&C2,&R2,&M2); for(int a=0;a<V;a++) { min=999999; ji(a); ans[a]=min; r=a; } if(r==0) { printf("Case #%d ",o); printf("%d ",min); } else { qu(0,0); printf("Csae #%d ",o); printf("%d ",min); } o++;
} return 0; }//作者二哥