/*问题描述:有n门课(编号为0~n-1),每门课都有考试。为了拿到奖学金,必须满足所有课程平均成绩至少为avg。每门课由平时成绩和考试成绩相加得到,满足为r。现知道每门课平均成绩ai(0<=i<=n-1),若想让这门课多考一分,需要花bi的时间复习。同时,也可能出现复习再多也不会超过满分的分数。为了拿到奖学金,请问至少需要花多少时间??
输入描述:每个测试用例第一行为整数n(1<=n<=200),表示课程数,接下来n行,每行两个整数,分别表示一门课的平均成绩ai和bi,最后一行输入满分r和希望到达的平均成绩avg,以输入n==0结束
4
80 5
70 2
90 3
60 1
100 92.5
0
样例输出:
100
分析:既然选择用贪心,那么就要制定贪心准则。既然给定了avg平均成绩和n,那么我们不难得出拿到奖学金的总分为n*avg,同时每门课的平均成绩也已给出,那么二者之差就是我们需要复习之后提高的分数了。而且这个分数,要用最少的时间来获得。
所以要对bi进行排序。
1 #include<iostream> 2 #include<stdio.h> 3 #include<cstring> 4 #include<cmath> 5 #include<vector> 6 #include<stack> 7 #include<map> 8 #include<set> 9 #include<list> 10 #include<queue> 11 #include<string> 12 #include<algorithm> 13 #include<iomani