網易2016研發(fā)工程師編程題 獎學金(python)
本文為大家分享了網易2016研發(fā)工程師編程題,供大家參考,具體內容如下
'''
[編程題] 獎學金
時間限制:1秒
空間限制:32768K
小v今年有n門課,每門都有考試,為了拿到獎學金,小v必須讓自己的平均成績至少為avg。
每門課由平時成績和考試成績組成,滿分為r?,F(xiàn)在他知道每門課的平時成績?yōu)閍i ,
若想讓這門課的考試成績多拿一分的話,小v要花bi 的時間復習,不復習的話當然就是0分。
同時我們顯然可以發(fā)現(xiàn)復習得再多也不會拿到超過滿分的分數(shù)。為了拿到獎學金,小v至少要花多少時間復習。
輸入描述:
第一行三個整數(shù)n,r,avg(n大于等于1小于等于1e5,r大于等于1小于等于1e9,avg大于等于1小于等于1e6),
接下來n行,每行兩個整數(shù)ai和bi,均小于等于1e6大于等于1
輸出描述:
一行輸出答案。
輸入例子1:
5 10 9
0 5
9 1
8 1
0 1
9 100
輸出例子1:
43
'''
'''
解題思路:排序
先把平均成績ai和復習時間bi放入ab_i中,然后把ab_i按照bi從小到大的順序排序
然后1、求出所需要的總分(n*avg) 2、求出平均成績的總和;如果平均成績的總和已經大于了所需總分,則輸出0,否則:
按順序訪問ab_i,如果ab_i中當前科目的平均分已經到達滿分,則訪問下一個科目,否則的話給當前科目平均分加1,當前的總分加1,消耗時間加上該科目獲取1分的復習時間。
直至當前的總分等于目標總分后輸出所耗費的時間。
'''
'''
代碼運行結果:
答案正確:恭喜!您提交的程序通過了所有的測試用例
'''
while True:
try:
n, r, avg = [int(each) for each in input().split()]
ab_i = []
for i in range(n):
ab_i.append([int(each) for each in input().split()])
ab_i = sorted(ab_i, key=lambda x: x[1])
target = n * avg
current = sum([each[0] for each in ab_i])
time_total = 0
if current < target:
index = 0
while current < target:
while ab_i[index][0] >= r:
index += 1
time_total += ab_i[index][1]
ab_i[index][0] += 1
current += 1
print(time_total)
else:
print(0)
except:
break
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
python?rsa和Crypto.PublicKey.RSA?模塊詳解
這篇文章主要介紹了python?rsa和Crypto.PublicKey.RSA?模塊,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04
Python Pandas數(shù)據(jù)中對時間的操作
這篇文章主要介紹了Python Pandas數(shù)據(jù)中對時間的操作,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07
Python之DataFrame輸出為csv\txt\xlsx文件問題
這篇文章主要介紹了Python之DataFrame輸出為csv\txt\xlsx文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
Python如何實現(xiàn)Excel的最合適列寬(openpyxl)
這篇文章主要介紹了Python如何實現(xiàn)Excel的最合適列寬(openpyxl),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
win10安裝tesserocr配置 Python使用tesserocr識別字母數(shù)字驗證碼
這篇文章主要介紹了win10安裝tesserocr配置 Python使用tesserocr識別字母數(shù)字驗證碼,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01

