#SFJSJJZN3144. 「Coins」 硬币

「Coins」 硬币

题目描述

给定 NN 种硬币,其中第 ii 种硬币的面值为 AiA_i,共有 CiC_i 个。

从中选出若干个硬币,把面值相加,若结果为 SS,则称“面值 SS 能被拼成”。

1M1\sim M之间能被拼成的面值有多少个。

输入格式

输入包含多组测试用例。

每组测试用例第一行包含两个整数 NNMM

第二行包含 2N2N 个整数,分别表示 A1,A2,,ANA_1,A_2,…,A_NC1,C2,,CNC_1,C_2,…,C_N

当输入用例 N=0M=0N=0,M=0 时,表示输入终止,且该用例无需处理。

输出格式

每组用例输出一个结果,每个结果占一行。

数据范围

1N1001 \le N \le 100,
1M1051 \le M \le 10^5,
1Ai1051 \le A_i \le 10^5,
1Ci10001 \le C_i \le 1000

输入用例:

3 10
1 2 4 2 1 1
2 5
1 4 2 1
0 0

输出用例:

8
4

来源

  • 《算法竞赛进阶指南》
  • acwing 可能含有视频讲解