名企笔试:2016网易笔试题(奖学金)2017-05-12 算法爱好者

 
 
题目描述
小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

C++源代码:

//	Netease problem 2017.05.12
//	2017.05.22 by wyj

/*
名企笔试:2016网易笔试题(奖学金)2017-05-12 算法爱好者

题目描述
小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
*/

#include
    
    
     
     
#include
     
     
      
      
#include
      
      
       
        
using namespace std;

class Course
{
	public:
		int a;
		int b;
};

//课程按复习花费时间升序
bool sortByb(const Course &c1, const Course &c2)
{
	return c1.b < c2.b;
}

int main()
{
	int n, r, avg;
	int grade = 0, gradeA = 0, gradeB = 0;	//所需总成绩,平时总成绩,所需考试总成绩
	int Min_t = 0;
	int i, j = 0;

	cin >> n >> r >> avg;
	vector
       
       
        
         vec_C(n);
	for (i = 0;i < n;i++)
	{
		cin >> vec_C[i].a >> vec_C[i].b;
		gradeA += vec_C[i].a;
	}
	sort(vec_C.begin(), vec_C.end(), sortByb);		//课程按复习花费时间升序

	grade = n*avg;
	gradeB = grade - gradeA;
	i = j = 0;
	while (i < gradeB)
	{
		while (i < gradeB && vec_C[j].a < r)
		{
			Min_t += vec_C[j].b;
			vec_C[j].a++;
			i++;
		}
		j++;
	}

	cout << Min_t << endl;
	return 0;
}
       
       
      
      
     
     
    
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值