B - かぶりん! Editorial /

Time Limit: 2 sec / Memory Limit: 256 MB

かぶりんイメージ

“ぶん投げRPG『かぶりん!』”とは、袋をかぶった不思議な生き物かぶりんを投げて敵を倒すアクションRPGです。

問題文

かぶりんに熱中している王国民のダイキ君は、敵に与えるダメージを計算するプログラムを作成することにしました。

かぶりんのゲームのルールは以下の様になります。

ゲーム開始時点で、手元に 5 袋のかぶりんがいる。

手元のかぶりんを投げて敵にダメージを与えることができる。投げたかぶりんはしばらくすると手元に戻ってくる。

投げ方には「通常投げ」「ため投げ」の 2 種類があり、投げて敵にダメージを与えるとコンボ数が増える。

通常投げ

  • 1 袋のかぶりんを投げる
  • 手元に 1 袋以上のかぶりんが必要
  • 投げるまでに 0.5 秒かかる
  • 投げてから 1 秒後にダメージを与える
  • 基本ダメージは 10 で、投げる際のコンボ数によって増加する
  • ダメージを与えてから 5 秒後に手元に戻ってくる

ため投げ

  • 3 袋のかぶりんを投げる
  • 手元に 3 袋以上のかぶりんが必要
  • 投げるまでに 2.5 秒かかり、その間は他の行動はできない
  • 投げてから 1 秒後にダメージを与える
  • 基本ダメージは 50 で、投げる際のコンボ数によって増加する
  • ダメージを与えてから 5 秒後に手元に戻ってくる

コンボについて

  • ゲーム開始時点でコンボ数は 0 である
  • 通常投げ、ため投げ共に、1 回ダメージを与えるとコンボ数が 1 増える
  • 10 コンボごとに、与えるダメージが、基本ダメージの 10 %増加する
  • 与えるダメージは、基本ダメージを A、コンボ数を C としたとき、A \times (1 + {\rm floor}(C / 10) \times 0.1) で計算される
    • {\rm floor}(x)x を超えない最大の整数を意味する。
  • 攻撃力の増加は、コンボ達成後に投げはじめるかぶりんから適用される

ユーザの入力について

  • 1 秒に 1 回 通常投げ、ため投げ、何もしない のいずれかが入力がなされる
  • 投げの入力時、手元に必要なかぶりんがいない場合は無視される
  • ため時間中の投げ入力は無視される

ユーザの入力が与えられるので、敵に与えたダメージの合計を計算して下さい。

なお、ユーザの入力が終わった際に投げられているかぶりんのダメージも計算に含みます。


入力

入力は以下の形式で標準入力から与えられる。

S_1 S_2 … S_n
  • ユーザの入力を表す長さ n (1 \leq{} n \leq{} 1000000) の文字列が 1 行で与えられる
  • i 番目文字 S_ii 秒目のユーザーの入力を表わしている
  • S_i は次のいずれかである
    • - 入力なし
    • N 通常投げ
    • C ため投げ

出力

敵に与えたダメージの合計を 1 行の整数で出力せよ。
なお、行の終端には改行が必要であり、ダメージの合計は 10^{11} 以下になることが保証されている。
一般的な 32 bit整数型に収まらないことに注意せよ。


入力例1

NNNNNNNN

出力例1

60

かぶりんを通常投げで 8 回投げようとしますが、6 秒目と 7 秒目には手元にかぶりんがおらず、8 秒目に 1 秒目に投げたかぶりんが帰ってきているので、6 回投げることができ 60 ダメージを与えます。

入力例2

CCCCC

出力例2

50

1 秒目の入力で、3 袋のかぶりんのため投げを開始します。

2, 3 秒目の入力は、ため投げ中なので無視されます。

4, 5 秒目の入力は、手元に 3 袋以上かぶりんがいないため無視されます。

入力例3

NNC------NNC------NNC------NNC------NNC------NNC

出力例3

439

コンボによるダメージの増加は、実際に投げるタイミングではなく、ため始めるタイミングです。(22:20 追記)

10 コンボ到達後に投げ始めるかぶりんに対して、ダメージが増加することに注意して下さい。


Source Name

天下一プログラマーコンテスト2014 予選A