#include #define ll long long #define ull unsigned ll #define uint unsigned #define pii pair #define pll pair #define IT iterator #define PB push_back #define fi first #define se second #define For(i,j,k) for (int i=(int)(j);i<=(int)(k);i++) #define Rep(i,j,k) for (int i=(int)(j);i>=(int)(k);i--) #define CLR(a,v) memset(a,v,sizeof(a)); #define CPY(a,b) memcpy(a,b,sizeof(a)); #define debug puts("wzpakking") #define y1 ysghysgsygsh using namespace std; ll F(int l1,int l2){ l2=min(l2,2*l1); ll res=1ll*l2*(l2+1)*2+1; if (l2>l1) res-=4ll*(l2-l1)*(l2-l1); //cout<<"F "<l1){ l2-=l1; res-=4ll*l2*l2*(l1+1); res-=4ll*l2*(l2-1)/2; res-=4ll*(l2-1)*l2*(l2*2-1)/6*2; } return res; } int a[10]; /* 1 0 1 0 1 5 1 4*1 1 3 13 2 8*2 2 5 25 3 12*3 3 7 3*4*7/6*4= k*(k+1)*2 */ pll check(int v){ ll res1=0,res2=0; For(i,1,4){ res1+=F(a[i],v/(4-i+1)); res2+=FF(a[i],v/(4-i+1))*(4-i+1); if (i!=1){ res1-=F(a[i-1],v/(4-i+1)); res2-=FF(a[i-1],v/(4-i+1))*(4-i+1); } } return pll(res1,res2); } void solve(){ ll k; For(i,1,4) scanf("%d",&a[i]); scanf("%lld",&k); int l=0,r=2500000,ans=-1; while (l<=r){ int mid=(l+r)/2; if (check(mid).fi>=k) ans=mid,r=mid-1; else l=mid+1; } printf("%lld\n",check(ans).se-(check(ans).fi-k)*ans); } int main(){ int T; scanf("%d",&T); while (T--) solve(); }