#P1011. 西瓜的能量分配

西瓜的能量分配

题目背景

小明终于买到了心仪的mm个西瓜,他心满意足地准备享用。但是,作为一个讲究效率的“吃瓜大侠”,他希望在体力消耗完之前,尽可能多地品尝不同种类的西瓜。

注:这道题很难啊啊啊

题目描述

小明总共有E点初始体力。他刚刚购买了m个西瓜,每个西瓜的编号为b1,b2,...,bmb_1,b_2,...,b_m (这些编号是第四题中输出的购买顺序,但是, 为了方便写代码和样例,所以你不用考虑这个括号里的内容)。吃掉每个西瓜会消耗一定的体力值,并且能获得一定的饱腹感。具体来说,吃掉编号为bib_i的西瓜会消耗cic_i点体力值,并获得hih_i点饱腹感。

小明想要知道,在体力值不降到0或以下的前提下,他最多能吃到多少不同种类的西瓜,并且求出在吃到最多不同种类西瓜的情况下,他能获得的最大总饱腹感是多少。

注意: 即使是同一个瓜农提供的,但编号不同的西瓜也视为不同种类。小明必须按照购买的顺序(即输入的b1,b2,...,bmb_1,b_2,...,b_m)来决定是否吃掉每个西瓜,一旦决定不吃某个西瓜,就不能再吃后面的西瓜了。

输入格式

第一行输入两个正整数m和E,分别表示小明购买的西瓜数量和初始体力值。

接下来m行,每行包含两个正整数cic_ihih_i,分别表示吃掉第i个购买的西瓜(编号为bib_i)所消耗的体力值和获得的饱腹感。

输出格式

输出一行,包含两个整数,分别表示小明最多能吃到的不同种类西瓜的数量,以及在吃到这个数量的西瓜时,获得的最大总饱腹感。

输入输出样例 #1

输入 #1

3 10
2 3
3 5
4 2

输出 #1

3 10

输入输出样例 #2

输入 #2

4 15
5 10
6 8
2 4
3 6

输出 #2

3 22

输入输出样例 #3

输入 #3

2 5
5 10
6 8

输出 #3

1 10

说明/提示

数据范围:1m1051E,ci,hi1091≤m≤10 5 ,1≤E,c_i,h_i≤10^9