#include<bits/stdc++.h> #define ll long long using namespace std; const ll MAXN=200+5,inf=1e18; int q; ll a[5],b[5]; ll f[2][MAXN][MAXN][MAXN]; ll g[MAXN][MAXN][MAXN]; void init(){ for(int i=0;i<MAXN;i++){ for(int j=0;j<MAXN;j++){ for(int k=0;k<MAXN;k++){ f[i][j][k]=-inf; g[i][j][k]=false; } } } } ll s(ll l,ll r){ return (r-l+1ll)*(l+r)/2ll; } ll sum(ll t,ll x){ if(!x){ return -1; } ll num=0; for(int i=30;~i;i--){ if(s(t,t+num+(1<<i))<w[i]){ num+=(1<<i); } } return num; } ll calc(ll x,ll y,ll z){ ll w[5]; w[1]=x,w[2]=y,w[3]=z; ll ans=inf; for(ll i=1;i<=3;i++){ ll tot=0; ll t=101; ll num=sum(t,w[i]); t+=num+1; tot+=(t-101)*b[i]; for(int j=1;j<=3;j++){ if(ij){ continue; } ll num=sum(t,w[j]); t+=num+1; tot+=(t-101)*b[j]; for(int k=1;k<=3;k++){ if(ik||j==k){ continue; } ll num=sum(t,w[k]); t+=num+1; tot+=(t-101)*b[k]; ans=min(ans,tot); } } } return ans; } void solve(){ for(int i=0;i<=a[1];i++){ for(int j=0;j<=100;j++){ f[0][101][i][j]=inf; if(s(1,100)>=a[1]-i+a[2]){ f[0][101][i][j]=calc(i,0,a[3]+t-s(1,100)+(a[1]-i+a[2])); } } } for(int i=0;i<=a[2];i++){ for(int j=0;j<=100;j++){ f[1][101][i][j]=inf; if(s(1,100)>=a[2]-i+a[1]){ f[1][101][i][j]=calc(0,i,a[3]+t-s(1,100)+(a[2]-i+a[1])); } } } for(int i=0;i<=a[1];i++){ for(int j=0;j<=a[2];j++){ g[101][i][j]=calc(i,j,0); } } for(int i=100;i>=1;i--){ for(int j=0;j<=a[1];j++){ for(int k=0;k<=100;k++){ f[0][i][j][k]=f[0][i+1][j][k]+(j?b[1]:0ll)+(a[3]+k-s(1,100)+(a[1]-j+a[2])); } } } } int main(){ scanf("%d",&q); while(q--){ scanf("%lld%lld%lld%lld%lld%lld",&a[1],&a[2],&a[3],&b[1],&b[2],&b[3]); init(); solve(); } }