#include <bits/stdc++.h>
using namespace std;
long long a[35];
long long dp[35][2];
int main(){
int t;
cin>>t;
while(t--){
memset(dp,0,sizeof(dp));
long long x,y,k;
cin>>x>>y>>k;
for(int i=0;i<=k;i++) cin>>a[i];
for(int i=k+1;i<=31;i++) a[i]=a[i-1]*2;
for(int i=1;i<=31;i++) a[i]=min(a[i],a[i-1]*2);
long long v=abs(x-y);
dp[0][1]=1000000000;
for(int i=1;i<=32;i++){
int r=(v>>(i-1))&1;
if (r==0){
dp[i][0]=min(dp[i-1][0],dp[i-1][1]+a[i-1]);
dp[i][1]=min(dp[i-1][0]+a[i-1],dp[i-1][1]);
}
else{
dp[i][0]=min(dp[i-1][0]+a[i-1],dp[i-1][1]+2*a[i-1]);
dp[i][1]=min(dp[i-1][0],dp[i-1][1]+a[i-1]);
}
}
cout<<dp[32][0]<<endl;
}
return 0;
}