问题 3160 --硬币问题

3160: 硬币问题

题目描述

给定 $N$ 种硬币,其中第 $i$ 种硬币的面值为 $a_i$,共有 $C_i$ 个。从中选出若干个硬币,把面值相加,若结果为$S$ ,则称“面值 $S$ 能被拼成”。求 $1$ 到 $M$ 之间能被拼成的面值有多少个。

输入

输入包含多组测试数据。 每组测试数据第一行包含两个整数 $N$ 和 $M$。 第二行包含$2N$个整数,分别表示 $A_1,A_2,\cdots,A_N$ 和 $C_1,C_2,\cdots,C_N$。 当输入 $N=0,M=0$ 时,表示输入终止,且该数据无需处理。

输出

每组数据输出一行答案。

样例输入输出

输入#1 复制
3 10
1 2 4 2 1 1
2 5
1 4 2 1
0 0
输出#1 复制
8
4

提示

对于 $100\%$ 的数据,$1 \leq N \leq 100$,$1 \leq M \leq 10^5$,$1 \leq A_i \leq 10^5$,$1 \leq C_i \leq 1000$。
序号 标题 作者 发表时间 费用 订购数 操作