時間限制:1.0s 記憶體限制:256.0mb
問題描述
達達在陶陶的影響下,也對學習慢慢的產生了興趣。
他在每次考試之後,都會追著老師問,自己在班級的總名次是多少。考試一多,老師也不耐煩了,於是他給了達達所有人的成績,讓他自己去算出自己的排名。
可人太多了,達達也無法立即算出來,於是他想讓你幫幫他。
輸入格式
第一行為乙個整數n,代表班級的學生總數。
接下來n行,每行乙個字串,代表乙個學生的姓名,第一行總是dada。
接下來一行乙個整數m,代表一共有m次考試。
每次考試有n行,每行有以乙個空格分隔的乙個正整數s和乙個字串p,代表名字為p的學生在這次考試中得了s分。
輸出格式
一共m行,每行乙個整數,代表達達在班級裡的排名,排名是這一次考試過後的所有考試總分排名,如果達達和別人並列,達達總是排在前面。
樣例輸入
3dadaab
249 dada
49 a
48 b
80 a
85 b
83 dada
樣例輸出12
資料規模和約定
n <= 100,名字長度不超過30,分數不超過100
思路:
這道題也是題目巨坑,一定要注意,不是比較單次考試,而是dada在每一次考試後在上一次基礎上的總分排名,python用字典訪問分數,每次需要排名時,用列表取出後排序,輸出「dada」的下標,即為排名
**:
from operator import itemgetter
n =eval
(input()
)stu =
for i in
range
(n):
stu[
input()
]=0m =
eval
(input()
)for i in
range
(m):
for k,v in stu.items():
tmp =
input()
.split(
)if tmp[1]
notin stu:
stu[tmp[1]
]=int(tmp[0]
)else
: stu[tmp[1]
]+=int(tmp[0]
) test =
for k, v in stu.items():
if k ==
'dada'
:[v, k,1]
)else
:[v, k ,0]
) test.sort(key = itemgetter(0,
2),reverse=
true
)# print(test)
for j in
range
(n):
if'dada'
in test[j]
:print
(j+1
)
演算法提高 班級排名
達達在陶陶的影響下,也對學習慢慢的產生了興趣。他在每次考試之後,都會追著老師問,自己在班級的總名次是多少。考試一多,老師也不耐煩了,於是他給了達達所有人的成績,讓他自己去算出自己的排名。可人太多了,達達也無法立即算出來,於是他想讓你幫幫他。輸入格式 第一行為乙個整數n,代表班級的學生總數。接下來n行...
演算法提高 班級排名
達達在陶陶的影響下,也對學習慢慢的產生了興趣。他在每次考試之後,都會追著老師問,自己在班級的總名次是多少。考試一多,老師也不耐煩了,於是他給了達達所有人的成績,讓他自己去算出自己的排名。可人太多了,達達也無法立即算出來,於是他想讓你幫幫他。第一行為乙個整數n,代表班級的學生總數。接下來n行,每行乙個...
藍橋杯 演算法提高VIP 班級排名
題目描述 達達在陶陶的影響下,也對學習慢慢的產生了興趣。他在每次考試之後,都會追著老師問,自己在班級的總名次是多少。考試一多,老師也不耐煩了,於是他給了達達所有人的成績,讓他自己去算出自己的排名。可人太多了,達達也無法立即算出來,於是他想讓你幫幫他。資料規模和約定 n 100,名字長度不超過30,分...