#include <iostream>
#include <vector>
#include <algorithm>
usingnamespacestd;#define MIN(a,b) (a < b ? a : b)
intcost[4]={0,};intdfs(intmonth,intm[13]){if(month>=13)return0;intfee[3];intnextmonth=0;for(inti=month+1;i<13;i++)if(m[i]>0){nextmonth=i;break;}fee[0]=cost[0]*m[month];fee[1]=cost[1];if(nextmonth!=0){fee[0]+=dfs(nextmonth,m);fee[1]+=dfs(nextmonth,m);}nextmonth=0;for(inti=month+3;i<13;i++)if(m[i]>0){nextmonth=i;break;}fee[2]=cost[2];if(nextmonth!=0)fee[2]+=dfs(nextmonth,m);returnMIN(fee[2],MIN(fee[0],fee[1]));}intmain(){intmonths[13]={-1,};vector<int>solution;intntest=0;cin>>ntest;for(inti=0;i<ntest;i++){for(intj=0;j<4;j++)cin>>cost[j];for(intj=1;j<=12;j++){cin>>months[j];}intstart;for(intj=1;j<=12;j++){if(months[j]!=0){start=j;break;}}intres=dfs(start,months);if(res>cost[3])res=cost[3];solution.push_back(res);}for(inti=0;i<solution.size();i++){cout<<"#"<<i+1<<" "<<solution.at(i)<<endl;}}