【Cランクレベルアップメニュー】> 【辞書】STEP: 3 辞書データの順序 (paizaランク C 相当) [難易度: 1483 ±8]
※リンク先へ移動するためには[paiza]へのログインが必要です。
n 人の人の名前 s_1, ..., s_n が与えられたのち、 m 回の「攻撃」に関する情報が与えられます。各行は “p_i a_i” というフォーマットで与えられ、 p_i はダメージを受けた人の名前 (s_1, ..., s_n のいずれか) 、 a_i は p_i が受けたダメージ数を表す数です。なお、一度もダメージを受けていない人の合計ダメージは 0 とします。
それぞれの人が受けた合計ダメージを、人の名前のアルファベットの辞書順に出力してください。
入力値(例)
2
MIDORIKAWA
KIRISHIMA
2
KIRISHIMA 1
KIRISHIMA 2
出力値(例)
3
0
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php $n = trim(fgets(STDIN)); $dmg = []; for($i = 0; $i < $n; $i++) { $name = trim(fgets(STDIN)); $dmg[$name] = 0; } $m = trim(fgets(STDIN)); for($j = 0; $j < $m; $j++) { list($p, $a) = explode(" ", trim(fgets(STDIN))); $dmg[$p] += $a; } ksort($dmg); foreach($dmg as $key => $value) { echo $value. "\n"; } ?> |