题目描述
小v今年有n门课,每门都有考试,为了拿到奖学金,小v必须让自己的平均成绩至少为avg。每门课由平时成绩和考试成绩组成,满分为r。现在他知道每门课的平时成绩为ai ,若想让这门课的考试成绩多拿一分的话,小v要花bi 的时间复习,不复习的话当然就是0分。同时我们显然可以发现复习得再多也不会拿到超过满分的分数。为了拿到奖学金,小v至少要花多少时间复习。
输入描述:
第一行三个整数n,r,avg(n大于等于1小于等于1e5,r大于等于1小于等于1e9,avg大于等于1小于等于1e6),接下来n行,每行两个整数ai和bi,均小于等于1e6大于等于1
输出描述:
最少花费时间的数字
输入
5 10 9 0 5 9 1 8 1 0 1 9 100
输出
43
思路分析:
其实也不难,就是题意有点乱,得多读几遍。
score[][] 存储的是题目中的ai和bi,即就是score[i]存储的就是一个一维数组,里边score[i][0]存储的是平时成绩,平时成绩就是已经获得的成绩,剩下的成绩就需要读书获得了;score[i][0]存储的是读书的时间,这么长时间就可以获得1分,但每门课都有满分上限,即满分=平时成绩+读书获得的成绩。就是说每门课获得的分数是有限的。
直接说spend()函数思路:
- 计算想要获得奖学金所需要的分数 = avg * n
- 计算已经有了的分数 =