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