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 C# (judge verdict: Accepted)

using System;
using System.Linq;

class AizuOnlineJudge {
    static void Main() {
        var i = Console.ReadLine().Split().Select(int.Parse).ToArray();
        Console.WriteLine(
            Enumerable.Range(0, int.Parse(Console.ReadLine()))
                .Select(_ => Console.ReadLine())
                .Aggregate(i[0], (c, s) => s == "karero" ? 0 : s == "nobiro" ? Math.Max(c + i[1], 0) : Math.Max(c + i[2], 0))
        );
    }
}