【クエリメニュー】> 【Vtuber】STEP: 2 歴史を作る時間 (paizaランク C 相当) [難易度: 1906 ±26]
※リンク先へ移動するためには[paiza]へのログインが必要です。
西暦 1,000,000,000 年に行われた歴史の授業のグループワークで、歴史上のいくつかの出来事についての記事を年代順に並べて歴史年表を作成することになりました。
ところが、歴史年表は 1 枚の紙にまとめる必要があるため、古い出来事を担当する人から順番に歴史年表を書くことにしました。
グループの人数 N とそのメンバー S_1 ... S_N が与えられます。
続けて、歴史年表に載せる出来事の数 K , 各出来事の起こった年 Y_i , その出来事の記事を担当する生徒の名前 C_i が与えられるので、歴史年表を書く担当者の順番を出力してください。
なお、 1 人の生徒が複数の出来事の記事を担当することがある点に注意してください。
入力値(例)
3 5
nao
hiro
yuki
645 nao
593 hiro
2058 yuki
29484 nao
374759 nao
出力値(例)
hiro
nao
yuki
nao
nao
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?php list($n, $k) = explode(" ", trim(fgets(STDIN))); for ($i = 0; $i < $n; $i++) { $s[] = trim(fgets(STDIN)); } for ($i = 0; $i < $k; $i++) { list($year, $name) = explode(" ", trim(fgets(STDIN))); $history[] = ['year' => $year, 'name' => $name]; } // 指定したキーに対応する値を基準に、配列をソートする function sortByKey($key_name, $sort_order, $array) { foreach ($array as $key => $value) { $standard_key_array[$key] = $value[$key_name]; } array_multisort($standard_key_array, $sort_order, $array); return $array; } // yearを昇順ソートする $sorted_array = sortByKey('year', SORT_ASC, $history); for ($i = 0; $i < $k; $i++) { echo $sorted_array[$i]['name']. "\n"; } ?> |