解説

問題整理

  • 商品が NN 種類あり、各商品には名前 SiS_i と価格 PiP_i が与えられる。
  • 「おにぎり」の定義:商品名の末尾が厳密に onigiri のとき、かつそのときに限りおにぎり。
  • 販売されているすべてのおにぎりを MM 個ずつ購入する。
  • 消費税は無視。各商品の在庫は MM 個以上と仮定。
  • つまり、末尾が onigiri の商品だけを集め、その価格 Pi×MP_i \times M の合計が答え。

重点ポイント

  • 末尾一致のみ(部分一致・先頭一致ではない)。
  • 「onigiri」と完全一致も末尾一致の一例。
  • Si<7|S_i| < 7 のときは一致し得ない。

実装方針

  1. N,MN, M を読み取る。
  2. NN 行読み、各 (Si,Pi)(S_i, P_i) を取得。
  3. 文字列の末尾一致を判定する(Python なら s.endswith("onigiri") が簡潔。スライス s[-7:] == "onigiri" でも可)。
  4. 一致したら累積和に Pi×MP_i \times M を足す。
  5. 最後に累積和を出力。

実装例は以下のようになります。