先加後乘與函數 (APCS 2023-01 中高級)

1.0s 256M

給定一個由數字、+* 與函數 \(f\) 組成的運算式。除了函數 \(f\) 的括號外,運算式中不會出現其他括號。請依照「先加後乘」的方式計算運算式,也就是 + 的優先級高於 *

函數 \(f(x_1,x_2,\ldots)\) 可以接受任意正數個參數,每個參數本身也是合法的運算式。函數值定義為所有參數的最大值減去最小值。例如 \(f(3,6,2)=6-2=4\),而 \(f(3)=0\)。

輸入格式

輸入一行不含空白的合法運算式。

限制

  • 運算式長度不超過 \(500\)。
  • 運算式中的每個數字介於 \(0\) 到 \(200\) 之間。
  • 除了函數 \(f\) 的括號外,不會出現其他括號。
  • 運算式保證合法。
  • 運算過程與答案可能超過 \(2^{31}\),但不超過 \(10^{17}\)。

輸出格式

輸出運算式依照先加後乘規則計算後的值。

評分說明

本題共有 \(20\) 筆計分測試資料,每筆 \(5\) 分。

子題 分數 額外限制
1 30 運算式只包含數字、+*
2 70 無額外限制

範例輸入 1

2+3*1+2+1

範例輸出 1

20

範例輸入 2

12+f(13,2+f(8,1+2*3),1+1*f(20,4)*f(2))*2

範例輸出 2

50

範例輸入 3

f(0)

範例輸出 3

0

題目來源

APCS 2023 年 1 月實作題第 3 題,ZeroJudge j607 先加後乘與函數

題目頁說明

快速鍵

主要功能

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

限制

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