Home11月24:吃雞遊戲
阿新 • • 發佈:2018-12-20
Description
xxx 吃雞成癮。為此他決定逃課吃雞!但是學校有規定,曠課到一定次數,是不給予期末考的資格的。因此 xxx 決定每門課最多逃兩次。現在告訴你,一個學期有 n 節課程,第 i節課的科目是 si,時間為 ti。你需要告訴 xxx 這個學期他逃課吃雞的最大時間是多少。
Input
第一行給出一個整數n(1≤n≤10000)為該學期課程節數。接下來n行,第i+1行給出第i節課的科目si和時間ti中間用空格隔開si由小寫字母組成1≤∣si∣≤10,1≤ti≤10000。若 si=sj則認為第i節課和第j節課是同一門課。
Output
輸出xxx該學期逃課吃雞的最大時間。
Sample Input 1
7
english 2
english 1
math 3
english 3
cook 5
eatchicken 10
cook 5
Sample Output 1
28
python思路
- 可以想到生成兩個列表,一個用於存放科目(subject)的列表l,一個用於存放時間(time)的列表m。
- time列表m中建立每個科目對應的子列表。遍歷每一個輸入的科目,如果subject列表l中已經有此科目,就把時間放到time對應的子列表中,如果沒有此科目就分別在sub列表和time列表中加入科目和時間。
- 最後遍歷time列表中的子列表,判斷子列表中元素是否大於等於3。如果大於等於3,排序後取最大的兩個,如果小於3,直接用sum函式。
n=int(input()) l=[] #用於存放科目 m=[] #用於存放時間 for i in range(n): sub,time=input().split() if sub not in l: l.append(sub) m.append([int(time)]) elif sub in l: m[l.index(sub)].append(int(time)) a=0 for h in m: if len(h)>=3: h.sort() a+=h[-2]+h[-1] else: a+=sum(h) print(a)