#include <stdio.h>
#include <string.h>
int min(int a,int b)
{
return a<b?a:b;
}
int main()
{
int t,n=50,c1[51]={0},c2[51]={0},i,j,h,nn,ll,s;
int a[26],b[26];
for(i=0;i<=25;i++)a[i]=i+1;
scanf("%d",&t);
while(t--){
for(i=0;i<=25;i++)scanf("%d",&b[i]);
ll=0;
c1[0]=1;
for(i=0;i<=25;i++){
nn=min(n,ll+a[i]*b[i]);
memset(c2,0,sizeof(int)*(nn+1));
for(j=0;j<=b[i]&&j*a[i]<=nn;j++){//j是某一字母的个数
for(h=0;h+j*a[i]<=nn&&h<=ll;h++){//h是价值
c2[h+j*a[i]]+=c1[h];
}
}
ll=nn;
memcpy(c1,c2,sizeof(int)*(nn+1));
}
s=0;
for(i=1;i<=50;i++)s+=c1[i];
printf("%d\n",s);
}
return 0;
}
和T题几乎一样