【累積和メニュー】> 【区間の長さ】STEP: 3 区間の長さ 3 (paizaランク C 相当) [難易度: 1214 ±66]
※リンク先へ移動するためには[paiza]へのログインが必要です。
1 行目に整数 K が与えられます。
10 個の整数 a_1, a_2, ..., a_10 からなる数列 a が与えられます。
この数列において、総和が K 以下の区間のうち、最大の長さを求めてください。
入力値(例)
15
1 5 9 1 20 5 3 6 5 4
出力値(例)
3
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php $k = trim(fgets(STDIN)); $a = explode(" ", trim(fgets(STDIN))); $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; ?> |