本文為大家分享了網(wǎng)易2016研發(fā)工程師編程題,供大家參考,具體內(nèi)容如下
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、濮陽(yáng)縣網(wǎng)站維護(hù)、網(wǎng)站推廣。'''
[編程題] 獎(jiǎng)學(xué)金
時(shí)間限制:1秒
空間限制:32768K
小v今年有n門(mén)課,每門(mén)都有考試,為了拿到獎(jiǎng)學(xué)金,小v必須讓自己的平均成績(jī)至少為avg。
每門(mén)課由平時(shí)成績(jī)和考試成績(jī)組成,滿分為r。現(xiàn)在他知道每門(mén)課的平時(shí)成績(jī)?yōu)閍i ,
若想讓這門(mén)課的考試成績(jī)多拿一分的話,小v要花bi 的時(shí)間復(fù)習(xí),不復(fù)習(xí)的話當(dāng)然就是0分。
同時(shí)我們顯然可以發(fā)現(xiàn)復(fù)習(xí)得再多也不會(huì)拿到超過(guò)滿分的分?jǐn)?shù)。為了拿到獎(jiǎng)學(xué)金,小v至少要花多少時(shí)間復(fù)習(xí)。
輸入描述:
第一行三個(gè)整數(shù)n,r,avg(n大于等于1小于等于1e5,r大于等于1小于等于1e9,avg大于等于1小于等于1e6),
接下來(lái)n行,每行兩個(gè)整數(shù)ai和bi,均小于等于1e6大于等于1
輸出描述:
一行輸出答案。
輸入例子1:
5 10 9
0 5
9 1
8 1
0 1
9 100
輸出例子1:
43
'''
'''
解題思路:排序
先把平均成績(jī)ai和復(fù)習(xí)時(shí)間bi放入ab_i中,然后把a(bǔ)b_i按照bi從小到大的順序排序
然后1、求出所需要的總分(n*avg) 2、求出平均成績(jī)的總和;如果平均成績(jī)的總和已經(jīng)大于了所需總分,則輸出0,否則:
按順序訪問(wèn)ab_i,如果ab_i中當(dāng)前科目的平均分已經(jīng)到達(dá)滿分,則訪問(wèn)下一個(gè)科目,否則的話給當(dāng)前科目平均分加1,當(dāng)前的總分加1,消耗時(shí)間加上該科目獲取1分的復(fù)習(xí)時(shí)間。
直至當(dāng)前的總分等于目標(biāo)總分后輸出所耗費(fèi)的時(shí)間。
'''
'''
代碼運(yùn)行結(jié)果:
答案正確:恭喜!您提交的程序通過(guò)了所有的測(cè)試用例
'''
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