#LRX10. CSGO!

CSGO!

题目背景

大白老师的电脑里登录着老师自己的CSGOCSGO账号。每到周日的课间,老师就会把电脑拿出来,让同学们轮流上场打游戏。

可是随着开学的逼近,留给大家玩游戏的机会越来越少,现在就只剩下两节课可以玩。时间十分紧张,不能所有人都随便玩。为了老师账号的军衔等级,老师想要冲分,想要充分利用有限的课间时间,让老师的账号拿到尽可能高的总得分。

大白老师需要精心挑选上场的同学。每一位同学上场打一局,会消耗一定的课间时间,同时为老师的账号拿到一定分数。但是每个同学不能无限制上场,每个人都有最多可以上场的次数。

现在只剩 pp 分钟总游戏时间。在总消耗时间不能超过 pp 分钟的前提下,请你安排上场名单,冲击最高总得分。 游戏结束后还要选出 MVP:个人总贡献得分最高的同学(个人总贡献 = 实际上场次数 × 单次得分)。

数据保证不会出现并列情况。

题目描述

给定 tt 位同学,总可用游戏时间 pp 分钟。

每位同学给出四项信息:

姓名:上场同学的名字(不含空格)

一次时间:上场一局要消耗多少分钟

一次得分:打一局可以给老师账号拿到多少分数

最多上场次数:该同学最多能上场打多少局

规则:

一位同学可以不上场,或者上场若干局,但不能超过他的最多上场次数。 所有同学上场消耗的时间总和,不能超过总游戏时间 pp。 目标:帮助老师冲分,最大化老师账号的总得分。 在得到最优总得分的方案下,计算每个人的个人贡献,按格式输出 MVP。

输入格式

第一行两个整数 tt,pp,代表同学人数、总游戏时间(分钟)。

接下来 tt 行,每行四个数据:姓名 一次时间 一次得分 最多上场次数。

输出格式

第一行一个整数:可以获得的老师账号最大总得分。

第二行字符串格式:MVP:姓名

输入输出样例

3 20
zhangsan 5 10 2
lisi 4 7 3
wangwu 6 12 2
39
MVP:zhangsan

样例解释

样例说明

输入条件

  • 总时间上限:20 分钟
  • zhangsan:每局耗时5,单局得分10,最多上场2次
  • lisi:每局耗时4,单局得分7,最多上场3次
  • wangwu:每局耗时6,单局得分12,最多上场2次

最优方案

上场安排

zhangsan ×2,wangwu ×1,lisi ×1

计算

  • 总时间:2×5+1×6+1×4=202 \times 5 + 1 \times 6 + 1 \times 4 = 20
  • 总得分:$2 \times 10 + 1 \times 12 + 1 \times 7 = \boldsymbol{39}$

个人贡献(上场次数 × 单局得分)

  • zhangsan:2×10=202 \times 10 = 20
  • wangwu:1×12=121 \times 12 = 12
  • lisi:1×7=71 \times 7 = 7

MVP

zhangsan

数据范围

11tt100100

11pp10001000

11一次时间,一次得分,最多上场次数一次时间,一次得分,最多上场次数100100

姓名为不含空格的英文字符串。