APCS實作解題: 程式考試(112年1月)

https://zerojudge.tw/ShowProblem?problemid=j605

題目說明:

  • 考試有n個提交紀錄,每次提交紀錄包含兩整數:時間t 與分數s
  • 如果當次提交有嚴重錯誤,得到分數為-1
  • 計分公式:n次中最高分 – 總提交次數 – 總嚴重錯誤次數 * 2, 若結果為負則為0分
  • 請輸出總分,第一次獲得最高分的時間點

解題概念:

  • 提交次數最多6次, 可以放心直接解不會有運算時間限制問題
  • 存下每次的時間與分數
  • 累計”得到-1分的次數”

Python 解參考:

import sys
all_inputs = sys.stdin.readlines()
K = int(all_inputs[0])
n, s, p = [], [], 0
for i in range(K):
  ss = all_inputs[i+1].split()
  n.append(  int(ss[0])  )
  s.append(  int(ss[1])  )
  p+= (ss[1] == '-1')


all_max = [i for i , v in enumerate(s) if v==max(s)]
score = s[all_max[0]] - len(s) - 2*p
score = max(0, score)
print(score , n[ all_max[0]])