python【藍橋杯vip練習題庫】ADV-281特等獎學金

試題 算法提高 特等獎學金

資源限制
時間限制:1.0s 內存限制:256.0MB
問題描述
  土豪大學每年都會給學生頒發鉅額的特等獎學金,當然,獲獎的前提是要足夠優秀。這所大學有n名學生,他們中的每個人都會在m門必修課的每門課上獲得一個百分制的整數成績(0-100),到了期末教務長會獲得所有學生在所有必修課上的成績報告,他會從中挑選出最優秀的k位學生,並給他們頒發獎學金。
  教務長認爲,某個學生只要有一門課不及格(分數<85),他就喪失了獲得獎學金的資格。教務長會給所有科目按照重要性排序,在所有擁有獲得獎學金資格的學生中,教務長更喜歡在更重要的科目中取得高分的學生,並依此將學生排序(即對於某兩名學生,在最重要的科目中取得更高分的學生排在前面;如果兩人在最重要的科目中取得相同的分數,則比較次重要的科目;若再相同則比較第三重要的科目……一直下去)。
  以前土豪大學的學生數量並不多,教務長就用紙筆計算誰將獲得獎學金;今年大學擴招了,教務長意識到用紙筆計算太複雜了,你能幫他解決這個問題嗎?說不定教務長高興了就給你也發一份獎學金(⊙o⊙)哦!(注意:獲獎學生數量可能小於k)
輸入格式
  輸入數據第一行爲三個整數n、m、k,用空格隔開;第二行至第(n+1)行是學號分別爲1、2……n的同學的m門課的成績(m門課已按重要性排序),用空格隔開(輸入保證每兩人的分數不完全相同)。
輸出格式
  輸出一行爲獲獎同學的學號,按排名從前到後排序,用空格隔開。
樣例輸入
10 2 7
99 87
96 79
93 99
88 88
90 87
90 86
90 88
88 90
91 100
100 85
樣例輸出
10 1 3 9 7 5 6
數據規模和約定
  0<n≤1000,0<m≤100,0<k≤n


"""
@Author:Lixiang

@Blog(個人博客地址): https://lixiang007.top/

@WeChat:18845312866

"""
import math
import string
import sys
import cmath
from itertools import permutations
n,m,k=list(map(int,input().strip().split()))
list1=[]
for i in range(n):
    list1.append(list(map(int,input().strip().split())))
max1=0
list2=list(enumerate(list1))
for i in list2:
    for j in range(m):
        if i[1][j]<85:
            list2.remove(i)
list2.sort(key=lambda x:x[1],reverse=True)
i=0
while k:
    k-=1
    print(list2[i][0]+1,end=" ")
    i+=1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章