// 連休の日数=$a, 旅行の日数=$b list($a, $b) = explode(' ', trim(fgets(STDIN))); $c = []; for($i = 0; $i < $a; $i++) { $d = trim(fgets(STDIN)); [$day, $rain] = explode(" ", $d); $c[$day] = $rain; } // $rainAllは、降水確率だけを格納した配列。 $rainAll = []; foreach ($c as $day => $rain) { $rainAll[] = $rain; } function getLowestAvg($rainAll) { $n = count($rainAll); $minAvg = []; for ($i = 0; $i < $n - 2; $i++) { $sum = $rainAll[$i] + $rainAll[$i + 1] + $rainAll[$i + 2]; // 少数第一位まで算出 $avg = floor($sum / 3 * 10) /10; $minAvg[] = $avg; } return $minAvg; } $resultRain = getLowestAvg($rainAll); // print_r($resultRain); // 一番低い降水確率が、$index 番目か。 $index = 0; $min = $resultRain[0]; for($i = 1; $i < count($resultRain); $i++) { if($min > $resultRain[$i]) { $min = $resultRain[$i]; $index = $i; } } // echo $min . "\n"; // array_slice は、連想配列に対しては、第4引数に true を入れること。 $keys = array_keys(array_slice($c, $index, $b, true)); echo $keys[0] . ' ' . $keys[$b - 1];