ABC467 B - Keep the Change
釣りは取っとけ
考え方
問題文の通りにシミュレーションをしてもよいが、実際に買い物をする様子を想像すればもっと簡単。
要するに、辞退したおつりの合計額を出せばよいだけである。
つまり、各買い物について、以下を行うだけでよい。
- まず、$S$ が
"keep"かどうかを確認 - 違ったらこの時点で次の買い物へ
"keep"だった場合、$B$ から $A$ を引いておつり額を出し、結果に加える
なお、最初に $10000$ 円という数値があるが、これは全買い物で所持金が不足しないと言っているだけ。
大した意味はない。
入力例1での動作
入力を受け取る。
n: 3
a: {1, 3, 5}
b: {2, 6, 9}
s: {"keep", "take", "keep"}
辞退したおつりを買い物ごとに確認する。
| 買い物 | s[i] |
辞退したおつり | 合計 |
|---|---|---|---|
| $1$ | keep |
$2-1=1$ | $1$ |
| $2$ | take |
$0$ | $1$ |
| $3$ | keep |
$9-5=4$ | $5$ |
したがって、答えは $5$ となる。
注意点
特になし。
別解
特になし。