网易笔试题 奖学金
来源:互联网 发布:win10 软件兼容 编辑:程序博客网 时间:2024/05/18 03:53
题目描述
小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
/** * 先复习bi小的课程 */#include <stdio.h>#include <stdlib.h>typedef struct cource { int score; int cost;} Cource;//按时间从小到大排序int compare(const void *a, const void *b) { return ((Cource *) a)->cost > ((Cource *) b)->cost;}int main() { Cource cources[100003]; int n, r, avg; long long totalScore, scores, time; while (scanf("%d %d %d", &n, &r, &avg) != EOF) { time = scores = totalScore = 0; for (int i = 0; i < n; ++i) { scanf("%d %d", &cources[i].score, &cources[i].cost); scores += cources[i].score; } qsort(cources, n, sizeof(cources[0]), compare); totalScore = avg * n; long long t1, t2; for (int i = 0; i < n; ++i) { if (scores >= totalScore) { break; } if ((t1 = totalScore - scores) > (t2 = r - cources[i].score)) { time += cources[i].cost * t2; scores += t2; } else { time += cources[i].cost * t1; scores += t1; } } printf("%lld\n",time); }}
0 0
- 网易笔试题 奖学金
- 网易笔试题分享:奖学金
- 名企笔试:2016网易招聘笔试题(奖学金)
- 网易2015实习生笔试题——奖学金
- 2017网易互联网内推笔试题(奖学金问题)
- 名企笔试:2016网易笔试题(奖学金)2017-05-12 算法爱好者
- 网易2016软件工程师笔试题-----[编程题] 奖学金(JAVA实现)
- 网易2016软件工程师笔试题-----[编程题] 奖学金(C++实现)
- 网易——奖学金
- 牛客网---2016---网易奖学金
- 网易一道笔试题!
- 网易笔试题
- 网易笔试题
- 网易笔试题一道
- 网易一道笔试题!
- 网易笔试题
- 网易笔试题
- 2012网易笔试题
- LeetCode Valid Anagram JAVA
- 【HDU 4706】【水题】Children's Day
- 基本数据类型和字符串相互转换
- Ubuntu下图形界面卡死解决办法
- 2016蓝桥杯第九题
- 网易笔试题 奖学金
- USACO 2.1-The Castle
- 单链表反转问题
- Swift快速入门-swift基础语法和函数-最直观学习swift
- 10033---ArrayList的实现原理
- input文本框输入限制数字和小数位数
- 关系型数据库中的范式问题?
- 使用Spring Boot来加速Java web项目的开发
- 【HDU 4727 】【水题】The Number Off of FFF