#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 100010
using namespace std;
typedef long long ll;
int c[5],tot;
int d[5],s;
ll f[N];
void backpack(int w)
{
memset(f,0,sizeof(f));
f[0]=1;
for(int i=1;i<=4;i++)
{
for(int j=c[i];j<=w;j++)
{
f[j]+=f[j-c[i]];
}
}
}
ll solve()
{
ll ans=0;
for(int i=0;i<(1<<4);i++)
{
int tmp=s,flag=0;
for(int j=1;j<=4;j++)
{
if(i&(1<<(j-1)))tmp-=(d[j]+1)*c[j],flag^=1;
}
if(tmp<0)continue;
backpack(tmp);
if(flag)ans-=f[tmp];
else ans+=f[tmp];
}
return ans;
}
int main()
{
scanf("%d%d%d%d%d",&c[1],&c[2],&c[3],&c[4],&tot);
while(tot--)
{
scanf("%d%d%d%d%d",&d[1],&d[2],&d[3],&d[4],&s);
ll print=solve();
if(print<0)printf("0\n");
else printf("%lld\n",print);
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/wzq_qwq/article/details/46944777