2895 - 魔法世界

题目描述

在《魔法世界》的游戏中,小 A 是一位魔法师,他的任务是消灭游戏中的怪兽,从而获得经验,提升自己的等级。

每轮游戏开始时,小 A 会获得一定的魔力值,小 A 在每轮游戏开始时获得的魔力值可能是不同的

每轮游戏地图中会产生 N 种不同类型的怪兽(编号为 1 \sim N)。如果小 A 要消灭 1i 种类型的怪兽(编号为 i),需要消耗 A_i 个单位的魔力值。在每轮游戏中,第 i 种类型的怪兽会固定的出现 C_i 头。

消灭怪兽需要的魔力值越高,玩家能得到的经验值就越高,越容易提升自己的等级。作为资深玩家的小 A ,迫切期待提升自己的等级。因此,每轮游戏,他都会将所有怪兽按照魔力值降序排序,然后在魔力值允许的情况下,按顺序依次尽可能消灭怪兽。直到地图中没有怪兽,或者自己的魔力值不足以继续消灭怪兽。

请编程计算出,如果游戏进行 M 轮,第 i 轮游戏开始小 A 获得了 V_i 个单位的魔力值,在每轮游戏中,他可以消灭多少个怪兽。

输入

1 行读入 2 个整数 NM,代表每轮游戏中出现的怪兽种类数和游戏轮数。

接下来 N 行,每行读入 2 个整数 A_iC_i,分别代表消灭 1 头第 i 种怪兽,需要消耗的魔力值,和第 i 种怪兽出现的头数。

接下来 M 行,每行读入一个整数 V_i,代表每轮游戏开始时,小 A 获得的魔力值。

输出

输出 M 行,分别代表每轮游戏结束时,小 A 消灭了多少个怪兽。

样例

输入

3 3
5 1
20 2
30 3
45
200
2

输出

2
6
0

输入

5 5
18 10
12 5
50 3
100 3
60 1
100
200
300
400
500

输出

1
2
3
6
8

输入

10 12
122475273 6005
102504615 484
18550738 2
49025 3
206965688 1006
31 3
557241570 8396
845874365 9449
26155506 2
127002844 2263
100
100000
2427057196
61321107606
34461241422
40058675642
82331801979
63787307167
12827798296
89290707565
10734016688
80159965104

输出

3
5
12
80
49
58
107
83
22
115
19
105
说明

样例 1 解释

游戏中共有 3 种怪兽,小 A 将他们按魔力值降序排序后,会按怪兽编号为 3 2 1 的顺序,依次尝试消灭每种怪兽。

A 在第一轮游戏开始时,获得了 45 个单位的魔力值,他可以消灭 1 头编号为 3 的怪兽,剩余魔力值 =45-30=15。剩余的魔力值无法消灭编号为 2 的怪兽,但可以消灭 1 头编号为 1 的怪兽,剩余魔力值 =15-5=10。因此第 1 轮游戏结束,小 A 共消灭了 2 头怪兽。

A 在第二轮游戏开始时,获得了 200 个单位的魔力值,他可以消灭 3 头编号为 3 的怪兽,剩余魔力值 =200-30 \times 3=110。剩余的魔力值可以消灭 2 头编号为 2 的怪兽,剩余魔力值 =110-20 \times 2=70。剩余的魔力值可以消灭 1 头编号为 1 的怪兽,剩余魔力值 =70-5=65。因此第 2 轮游戏结束,小 A 共消灭了 6 头怪兽。

A 在第三轮游戏开始时,获得了 2 个单位的魔力值,无法消灭任何怪兽,因此第 3 轮游戏结束,小 A 消灭了 0 头怪兽。

数据范围

对于 20\% 的数据,满足 1 \le N,M \le 1000

对于另外 40\% 的数据,满足 C_i=1

对于 100\% 的数据,满足 1 \le N,M \le 10^51 \le A_i \le 10^91 \le C_i \le 100000 \le V_i \le 10^{18}

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 1 枚
难度 基础


上一题 下一题