收服小虾米
测试数据来自 system/1081
作业已超过截止时间,您无法递交本题目。
时间限制:1秒 内存限制:256M
【问题描述】
一天,若愚和丘卡皮来到了小虾米狩猎场,里面有很多珍贵的野生宠物小虾米。若愚也想收服其中的一些小虾米。然而,野生的小虾米并不那么容易被收服。对于每一个野生小虾米而言,若愚可能需要使用很多个虾米球才能收服它,而在收服过程中,野生小虾米也会对丘卡皮造成一定的伤害(从而减少丘卡皮的体力)。当丘卡皮的体力小于等于 0 时,若愚就必须结束狩猎(因为他需要给丘卡皮疗伤),而使得丘卡皮体力小于等于 0 的野生小虾米也不会被若愚收服。当若愚的虾米球用完时,狩猎也宣告结束。
我们假设若愚遇到野生小虾米时有两个选择:收服它,或者离开它。如果若愚选择了收服,那么一定会扔出能够收服该小虾米的虾米球,而丘卡皮也一定会受到相应的伤害;如果选择离开它,那么若愚不会损失虾米球,丘卡皮也不会损失体力。
若愚的目标有两个:主要目标是收服尽可能多的野生小虾米;如果可以收服的小虾米数量一样,若愚希望丘卡皮受到的伤害越小(剩余体力越大),因为他们还要继续冒险。
现在已知若愚的虾米球数量和丘卡皮的初始体力,已知每一个小虾米需要的用于收服的虾米球数目和它在被收服过程中会对丘卡皮造成的伤害数目。请问,若愚该如何选择收服哪些小虾米以达到他的目标呢?
【输入格式】
第一行包含三个整数:\(N,M,K\),分别代表若愚的虾米球数量、丘卡皮初始的体力值、野生小虾米的数量。之后的 \(K\) 行,每一行代表一个野生小虾米,包括两个整数:收服该小虾米需要的虾米球的数量,以及收服过程中对丘卡皮造成的伤害。
【输出格式】
输出为一行,包含两个整数:\(C,R\),分别表示最多收服 \(C\) 个小虾米,以及收服 \(C\) 个小虾米时丘卡皮的剩余体力值最多为 \(R\)。
【输入输出样例1】
Input
10 100 5
7 10
2 40
2 50
1 20
4 20
Output
3 30
【输入输出样例1说明】
若愚选择:(7,10) (2,40) (1,20), 这样若愚一共收服了 3 个小虾米,丘卡皮受到了 70 点伤害,剩余 100 - 70 = 30 点体力。所以输出 3 30。
【输入输出样例2】
Input
10 100 5
8 110
12 10
20 10
5 200
1 110
Output
0 100
【输入输出样例2说明】
若愚一个小虾米都没法收服,丘卡皮也不会收到任何伤害,所以输出 0 100。
【数据限制】
对于 \(100\%\) 的数据满足:\(0 < N < 1000\),\(0 < M < 500\),\(0 < K < 100\)
【来源】
Mr.he