兩函數前綴式求值
Two-Function Prefix Expression・apcs-11-01
- APCS 中高級
- 依遞迴定義實作
- APCS 實作專題・Algorithms — Recursion & D&C
時間限制 1 秒・記憶體 64 MB
送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。
題目敘述
計算機只認得兩個函數:
- f(x) = 2x − 1
- g(x, y) = x + 2y − 3
輸入是一行以空白分隔的 token,用前綴方式寫成:函數名稱放在它的引數前面,不使用括號與逗號。token 只有 f、g 和整數。f 接一個引數,g 接兩個引數(先第一個、再第二個),而每個引數本身可以是整數,也可以是另一個函數呼叫。
舉例來說,一般寫法 f(g(f(1), 3)) 在這裡寫成 f g f 1 3,值為 7。
請算出整個式子的值。
輸入格式
一行,為合法的前綴式,token 為 f、g 與整數。
輸出格式
輸出一個整數,表示式子的值。
限制
- 輸入這一行的長度不超過 1000。
- 式中每個整數的絕對值不超過 1000。
- 所有中間結果與最終答案都落在 [−109, 109] 內。
範例
範例 1
輸入
f g f 1 3輸出
7範例 2
輸入
g g g f g 256 f 228 421 910 g 47 g 117 g g 692 -18 -420輸出
4002範例 3
輸入
g g f g g g 908 773 606 g g g 87 g 46 -591 f g 399 g f g 353 487 g 436 f g g 901 -820 -410 -93 -426 g g g 178 g 118 g 929 g 69 -653 g 111 f -302 g g f 253 -767 -94輸出
-306143說明
範例 1:由內而外,f(1)=1,g(1,3)=4,f(4)=7。
送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。
卡住了可以到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。