Problem:
A: 不思議な植物

問題

あるところに不思議な $X$ [cm] の植物が生えている.
この植物は以下の不思議な性質を持っている.

この植物に "nobiro" と声を掛けると, その植物は $A$ [cm] 成長する.

この植物に "tidime" と声を掛けると, その植物は $B$ [cm] 成長する.

この植物に "karero" と声をかけると, その植物は $0$ [cm] になる.

ただし, この植物は負の長さにはならないとする.
具体的には, $C$ [cm] の状態から $D$ [cm] $(C + D \lt 0)$ 成長するとき, 植物は $0$ [cm] になったときに成長が止まる.

この植物に $N$ 日間, 毎日一度だけ "nobiro", "tidime", "karero" のうちどれか
一つの言葉をかけた. $N$ 日後の植物の長さ [cm] を求めよ.

制約

入力値は全て整数である.

$0 \leq X \leq 100$

$-100 \leq A,B \leq 100$

$1 \leq N \leq 1000$

$S_i$ は "nobiro", "tidime" または "karero" のいずれかである.

入力形式

入力は以下の形式で与えられる.

$X\ A\ B$

$N $

$S_1$

$S_2$

$\vdots$

$S_N$

出力

$N$ 日後の植物の長さを出力せよ. また末尾に改行を出力せよ.

サンプル

サンプル入力 1

10 30 10
3
nobiro
nobiro
tidime

サンプル出力 1

80

サンプル入力 2

10 -20 -30
1
nobiro

サンプル出力 2

0

Solution in Scala (judge verdict: Accepted)

object Main extends App {
  import scala.io.StdIn._
  val Array(x, a, b) = readLine.trim.split(' ').map(_.toInt)
  val n = readInt()
  println(
    Array.fill(n){readLine.trim}.foldLeft(x){
      case (current, "nobiro") ⇒ math.max(0, current + a)
      case (current, "tidime") ⇒ math.max(0, current + b)
      case (_, "karero") ⇒ 0
      case _ ⇒ ???
    }
  )
}