【スキルチェック過去問題セット】> 日別訪問者数の最大平均区間 (paizaランク B 相当) [難易度: 1628 ±9]
※リンク先へ移動するためには[paiza]へのログインが必要です。

あなたは、とあるウェブサイトを管理していました。
ある連続したk日間、このウェブサイトでキャンペーンを行ったのですが、いつからいつまでの期間に行ったかを忘れてしまいました。
幸い、ウェブサイトを運営していた全n日分のアクセスログが残っており、1日ごとの訪問者数が分かっています。
とりあえず、連続するk日の中で、1日あたりの平均訪問者数が最も多い期間を、キャンペーンを行った期間の候補だと考えることにしました。
n日分の訪問者数のリストとキャンペーンの日数kが入力されるので、キャンペーンを行った期間の候補数と、候補の中で最も早い開始日を出力してください。
入力値(例)
5 3
1 2 3 2 1
出力値(例)
1 2
解答例
| 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 31 32 33 | <?php     list($n, $k) = explode(" ", trim(fgets(STDIN)));     $a = explode(" ", trim(fgets(STDIN)));     $total = [$n-$k+1];     for ($i=0; $i<$n-$k+1; $i++) {         $total[$i] = 0;         for ($j=$i; $j<$i+$k; $j++) {             $total[$i] += $a[$j];         }     }     $max = 0;     for ($i=0; $i<$n-$k+1; $i++) {         if ($max<=$total[$i]) $max = $total[$i];     }     $count = 0;     for ($i=0; $i<$n-$k+1; $i++) {         if ($total[$i] == $max) $count++;     }     $first_day = 0;     for ($i=0; $i<$n-$k+1; $i++) {         if ($total[$i] == $max) {             $first_day = $i+1;             break;         }     }     printf("%d %d\n", $count, $first_day); ?> | 

 
							
											

 
                