【累積和メニュー】> 【区間の長さ】STEP: 1 区間の長さ 1 (paizaランク C 相当) [難易度: 1429 ±54]
※リンク先へ移動するためには[paiza]へのログインが必要です。
以下の 10 個の整数からなる数列が与えられます。
1 5 9 1 20 5 3 6 5 4
この数列において、総和が 15 以下の区間のうち、最大の長さを求めてください。
入力値(例)
なし
出力値(例)
与えられた数列において、総和が 15 以下の区間のうち、最も長いものの長さを求めてください。
末尾に改行を入れ、余計な文字、空行を含んではいけません。
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php $a = [1, 5, 9, 1, 20, 5, 3, 6, 5, 4]; $k = 15; $maxLength = 0; for ($i=0; $i<count($a); $i++) { $r = $i+1; $sectionSum = 0; while ($r < count($a)+1) { $sectionSum += $a[$r-1]; if ($sectionSum > $k) break; $r++; } $maxLength = max($maxLength, $r-$i-1); } echo $maxLength; ?> |