先加後乘與函數 (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 先加後乘與函數。
登入後即可撰寫程式並提交評測。
登入