// 題目

兩函數前綴式求值

Two-Function Prefix Expression・apcs-11-01

  • APCS 中高級
  • 依遞迴定義實作
  • APCS 實作專題・Algorithms — Recursion & D&C

時間限制 1 秒・記憶體 64 MB

到 Aki-Judge 送出

送出程式要先用 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。

到 Aki-Judge 送出

送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。

卡住了可以到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。