運動積分 (APCS 2026-10 中級)

2.0s 256M

學校舉辦為期 \(K\) 天的運動積分賽,共有 \(N\) 位選手參加,選手編號 \(1\)~\(N\)。每一天都會記錄每位選手步行、跑步、騎自行車各花了幾分鐘。

選手每一天的日積分是這樣算的:步行每滿 \(10\) 分鐘得 \(X\) 分、跑步每滿 \(10\) 分鐘得 \(Y\) 分、騎自行車每滿 \(10\) 分鐘得 \(Z\) 分,三項加起來。不滿 \(10\) 分鐘的部分不得分,例如步行 \(25\) 分鐘只算滿 \(2\) 次 \(10\) 分鐘,得 \(2X\) 分。

每一天結束時,還有加分和扣分:

  • 當天日積分最高的選手加 \(A\) 分,當天日積分最低的選手扣 \(B\) 分。
  • 從第 \(2\) 天開始,日積分大於自己前一天日積分的選手,再加 \(S\) 分。

選手的總積分是他 \(K\) 天日積分的總和,加上所有加分、減去所有扣分。請找出總積分最高的選手,輸出他的編號和總積分。

題目保證同一天所有選手的日積分都不一樣,所有選手的總積分也都不一樣。

輸入格式

第一行有兩個正整數 \(N\) 與 \(K\),代表選手人數與比賽天數。

第二行有六個正整數 \(X\)、\(Y\)、\(Z\)、\(A\)、\(B\)、\(S\)。\(X\)、\(Y\)、\(Z\) 依序是步行、跑步、騎自行車每滿 \(10\) 分鐘得到的分數;\(A\)、\(B\)、\(S\) 依序是當天最高的加分、當天最低的扣分、日積分大於前一天的加分。

接下來有 \(N\) 行,第 \(i\) 行是第 \(i\) 位選手的紀錄,共有 \(3K\) 個整數。這些整數每 \(3\) 個一組,依序是第 \(1\) 天、第 \(2\) 天、……、第 \(K\) 天的紀錄;每一組的 \(3\) 個整數依序是那一天步行、跑步、騎自行車的分鐘數。

同一行的數字之間以一個空白隔開。

限制

  • \(2 \le N \le 20\)
  • \(1 \le K \le 20\)
  • \(1 \le X, Y, Z, A, B, S \le 10\)
  • 每個分鐘數都是 \(0\) 到 \(120\) 之間的整數(含)。
  • 同一天所有選手的日積分互不相同;所有選手的總積分互不相同。

輸出格式

輸出一行兩個整數:總積分最高的選手編號,以及他的總積分,中間以一個空白隔開。

評分說明

每一筆測試資料的執行時間限制均為 \(2\) 秒,依正確通過的測試資料筆數給分。

子題 分數 額外限制
1 60 \(N = 2\)
2 40 無額外限制

範例輸入 1

2 3
2 5 3 4 2 3
25 10 0 40 0 19 15 30 5
0 34 12 30 9 0 20 25 30

範例輸出 1

2 56

範例解釋 1

步行、跑步、騎自行車每滿 \(10\) 分鐘分別得 \(2\)、\(5\)、\(3\) 分;每天最高的加 \(4\) 分、最低的扣 \(2\) 分,日積分大於前一天的加 \(3\) 分。

輸入的第 \(3\) 行是選手 \(1\) 的紀錄,每 \(3\) 個數一組:25 10 0 是第 \(1\) 天、40 0 19 是第 \(2\) 天、15 30 5 是第 \(3\) 天;第 \(4\) 行是選手 \(2\) 的紀錄。

每位選手每一天的日積分如下,括號裡依序是步行、跑步、騎自行車各滿幾次 \(10\) 分鐘。例如選手 \(1\) 第 \(1\) 天步行 \(25\) 分鐘、跑步 \(10\) 分鐘、騎自行車 \(0\) 分鐘,分別滿 \(2\)、\(1\)、\(0\) 次,日積分是 \(2 \times 2 + 1 \times 5 + 0 \times 3 = 9\)。

選手 第 1 天 第 2 天 第 3 天
1 9(2、1、0) 11(4、0、1) 17(1、3、0)
2 18(0、3、1) 6(3、0、0) 23(2、2、3)

每一天的加分和扣分:

選手 第 1 天 第 2 天 第 3 天
1 最低 \(-2\) 最高 \(+4\)、進步 \(+3\) 最低 \(-2\)、進步 \(+3\)
2 最高 \(+4\) 最低 \(-2\) 最高 \(+4\)、進步 \(+3\)

第 \(1\) 天沒有前一天可以比,不會有進步的加分;選手 \(2\) 第 \(2\) 天的日積分 \(6\) 比第 \(1\) 天的 \(18\) 少,沒有進步的加分。

  • 選手 \(1\) 的總積分:\(9 + 11 + 17 - 2 + 4 + 3 - 2 + 3 = 43\)
  • 選手 \(2\) 的總積分:\(18 + 6 + 23 + 4 - 2 + 4 + 3 = 56\)

總積分最高的是選手 \(2\),所以輸出 2 56。

範例輸入 2

4 3
3 2 4 6 3 5
45 27 20 20 5 15 35 5 20
55 50 20 18 50 55 10 34 12
40 0 10 34 18 40 20 45 45
30 0 15 60 5 0 34 18 12

範例輸出 2

3 89

範例解釋 2

步行、跑步、騎自行車每滿 \(10\) 分鐘分別得 \(3\)、\(2\)、\(4\) 分;每天最高的加 \(6\) 分、最低的扣 \(3\) 分,日積分大於前一天的加 \(5\) 分。

每位選手每一天的日積分(括號裡依序是步行、跑步、騎自行車各滿幾次 \(10\) 分鐘):

選手 第 1 天 第 2 天 第 3 天
1 24(4、2、2) 10(2、0、1) 17(3、0、2)
2 33(5、5、2) 33(1、5、5) 13(1、3、1)
3 16(4、0、1) 27(3、1、4) 30(2、4、4)
4 13(3、0、1) 18(6、0、0) 15(3、1、1)

每一天的加分和扣分(— 表示沒有):

選手 第 1 天 第 2 天 第 3 天
1 — 最低 \(-3\) 進步 \(+5\)
2 最高 \(+6\) 最高 \(+6\) 最低 \(-3\)
3 — 進步 \(+5\) 最高 \(+6\)、進步 \(+5\)
4 最低 \(-3\) 進步 \(+5\) —

選手 \(2\) 第 \(2\) 天的日積分和第 \(1\) 天一樣是 \(33\),沒有大於前一天,所以沒有進步的加分。

  • 選手 \(1\) 的總積分:\(24 + 10 + 17 - 3 + 5 = 53\)
  • 選手 \(2\) 的總積分:\(33 + 33 + 13 + 6 + 6 - 3 = 88\)
  • 選手 \(3\) 的總積分:\(16 + 27 + 30 + 5 + 6 + 5 = 89\)
  • 選手 \(4\) 的總積分:\(13 + 18 + 15 - 3 + 5 = 48\)

選手 \(2\) 的日積分總和 \(79\) 最高,選手 \(3\) 只有 \(73\);但選手 \(3\) 的加分扣分合計 \(+16\),比選手 \(2\) 的 \(+9\) 多,總積分 \(89\) 比選手 \(2\) 的 \(88\) 多 \(1\) 分,所以輸出 3 89。

題目來源

APCS 2026 年 10 月中級實作題第 3 題。

官方未公布題本,題敘依考生考後回憶整理,細節可能與正式試題有出入。

題目頁說明

快速鍵

主要功能

  • 範例測試 — 執行題目附帶的範例測資並自動比對預期輸出。
  • 自訂測試 — 自己貼 stdin 執行程式。可勾選「與預期輸出比對 (diff)」做行對行比對。
  • 模板 — 貼上你在個人資料設定的預設程式碼模板。
  • 協作 — 與其他同學共筆編輯這題的程式碼。
  • 自動草稿 — 編輯器內容每 1.5 秒自動存到瀏覽器(per 帳號 / 題目 / 語言)。
  • 提交 — 把程式碼交給 judge 評測,回傳 AC / WA / TLE 等結果。

限制

  • 程式碼最多 65,536 字元
  • 自訂測試 stdin 與預期輸出各最多 1 MB (約 100 萬字元)
  • 自訂測試與範例測試共用一個沙箱,每人約 3 秒 1 次 (範例測試 1 秒 1 次)
  • 自訂測試與範例測試都有 15 秒 牆鐘上限(正式評測仍依題目原本時限)
  • 互動題不提供自訂測試(無法模擬與 judge 互動)。
  • 提交評測本身沒有 rate limit,但同題短時間內多次提交會被視為刷分。