【累積和メニュー】> 【連続する N 個の和の最大値】STEP: 3 連続する N 個の和の最大値 3 (paizaランク C 相当) [難易度: 1232 ±33]
※リンク先へ移動するためには[paiza]へのログインが必要です。
1 行目に整数 N が与えられます。
2 行目に N 個の整数 a_0, a_1, a_2, ..., a_(N-1) が与えられます。
連続する 3 個の整数の和の最大値を、累積和を使うことで求め、一行で出力してください。
入力値(例)
10
1 2 3 4 5 6 7 8 9 10
出力値(例)
27
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php $n = trim(fgets(STDIN)); $a = explode(" ", trim(fgets(STDIN))); $sum[0] = 0; for ($i=0; $i<$n; $i++) { $sum[$i+1] = $sum[$i]+$a[$i]; } //print_r($sum); $max_sum = 0; for ($i=0; $i<($n-3)+1; $i++) { $max_sum = max($max_sum, $sum[$i+3]-$sum[$i]); } echo $max_sum; ?> |