dp。
#include<iostream>
using namespace std;
int C, G;
int a[25], b[25];
int dp[25][150005];
int main()
{
cin >> C >> G;
for(int i = 0; i < C; i ++)
cin >> a[i];
for(int i = 1; i <= G; i ++)
cin >> b[i];
dp[0][75000] = 1;
for(int i = 1; i <= G; i ++)
for(int j = 0; j <= 150000; j ++)
if(dp[i - 1][j])
for(int k = 0; k < C; k ++)
{
if(j + b[i] * a[k] < 0 || j + b[i] * a[k] >= 150000)
continue;
dp[i][j + b[i] * a[k]] += dp[i - 1][j];
}
cout << dp[G][75000] << endl;
// system("pause");
return 0;
}