【特殊な探索】STEP: 5 点と点の距離 (paizaランク C 相当) 解答例 – PHP編【線形探索メニュー】
【線形探索メニュー】 > 【特殊な探索】STEP: 5 点と点の距離 (paizaランク C 相当)
※リンク先へ移動する為には「paiza」へのログインが必要です。
こういうプログラムがどうのこうのじゃなくて、意味が分かりにくい問題は嫌い”(-“”-)”
二点の距離をマンハッタン距離で求める問題ですが、一点はまぁn個座標が与えられているから分かりやすいのですが、基準となる座標が分かりにくすぎる。
重要なのが次の一文の内の、たった一言
「n 個の点 (点 n 含む) のうち、点 n とのマンハッタン距離が k 以下であるような点の数を求めてください。」
早い話、サンプル問題だと「n = 5」だから、5つめの座標を基準として、各座標とマンハッタン距離を求めなさいという問題だった。

多分正解率が異様に低いのはこの問題文の意味が非常に分かりにくく、回答者が問題の意味を勘違いしたためだという。
意味が分かると超簡単な問題だけど、マジこういうのやめてほしい。
解答例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php $n = trim(fgets(STDIN)); for($i = 0;$i < $n;$i++){ $array[$i] = explode(" ",trim(fgets(STDIN))); } $k = trim(fgets(STDIN)); $ans = 0; for($i = 0;$i < $n;$i++){ $test = abs($array[$n - 1][0] - $array[$i][0]) + abs($array[$n - 1][1] - $array[$i][1]); if($test <= $k){ $ans++; } } echo $ans; ?> |
