解説
問題整理
- 商品が N 種類あり、各商品には名前 Si と価格 Pi が与えられる。
- 「おにぎり」の定義:商品名の末尾が厳密に
onigiri のとき、かつそのときに限りおにぎり。
- 販売されているすべてのおにぎりを M 個ずつ購入する。
- 消費税は無視。各商品の在庫は M 個以上と仮定。
- つまり、末尾が
onigiri の商品だけを集め、その価格 Pi×M の合計が答え。
重点ポイント
- 末尾一致のみ(部分一致・先頭一致ではない)。
- 「onigiri」と完全一致も末尾一致の一例。
- ∣Si∣<7 のときは一致し得ない。
実装方針
- N,M を読み取る。
- N 行読み、各 (Si,Pi) を取得。
- 文字列の末尾一致を判定する(Python なら
s.endswith("onigiri") が簡潔。スライス s[-7:] == "onigiri" でも可)。
- 一致したら累積和に Pi×M を足す。
- 最後に累積和を出力。
実装例は以下のようになります。