このページについて

このページは、paiza ラーニング内に開設されているコンテンツ「レベルアップ問題集」で取り扱われているプログラミング課題について、独自の見解を述べたものです。

見解については、paizaラーニングの規約に基づき、許可されている範囲でのみ公開していますが、その内容については paiza とは一切関係なく、また paiza の立場を反映したものではありませんのでご注意ください。

挑戦する課題

レベルアップ問題集Cランクレベルアップメニューから「辞書のデータ更新 (paizaランク C 相当)」を取り上げます。

以下は、問題公開 Web ページからの引用です。

問題

n 人の人の名前 s_1, …, s_n が与えられたのち、 m 回の「攻撃」に関する情報が与えられます。各行は “p_i a_i” というフォーマットで与えられ、 p_i はダメージを受けた人の名前 (s_1, …, s_n のいずれか) 、 a_i は p_i が受けたダメージ数を表す数です。

最後に人名 S が与えられるので (S は s_1, …, s_n のいずれか) 、 S が受けたダメージの合計を出力してください。なお、一度もダメージを受けていない人の合計ダメージは 0 とします。

入力される値

入力は以下のフォーマットで与えられます。

  • 1 行目には正整数 n が与えられ、 2 行目から (n + 1) 行目には人の名前 s_1, ..., s_n が改行区切りで与えられます。 (n + 2) 行目には正整数 m が与えられ、 (n + 3) 行目から (n + m + 2) 行目には人の名前 p_is_1, ..., s_n のいずれか) とその人が受けたダメージ a_i"p_i a_i" という半角スペース区切りのフォーマットで m 行与えられます。 (n + m + 3) 行目には s_1, ..., s_n の中のいずれかの人名 S が与えられます。

期待する出力

S の受けた合計ダメージを出力してください。
末尾に改行を入れ、余計な文字、空行を含んではいけません。

考え方

執筆中

解答例