問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
10 個の整数 a_0, a_1, a_2, ..., a_9 をそれぞれ1 5 9 7 5 3 2 5 8 4
としたとき、この数列の a_2 から a_7 までの偶数の個数を、累積和を使うことで求め、一行で出力してください。
まず、数列 a の各要素が偶数かどうかを格納する数列 b_0, b_1, ..., b_9
を以下のように考えてみます。
0 ≦ i ≦ 9 において
a_i が偶数ならば b_i = 1
a_i が奇数ならば b_i = 0
例えば a = {1, 2, 3, 4, 5}
ならば b = {0, 1, 0, 1, 0}
となります。
ここで、数列 b の 1 の個数は、数列 a の偶数の個数と同じだとわかります。
つまり、数列 b で累積和を用いて、b_2 から b_7 までの総和を求めればよいです。
b の累積和をとった数列を s とすると、b_2 から b_7 までの総和は、s[8] - s[2]
で求めることができます。
このヒントを元に、累積和で問題を解いてみましょう
・入力はありません。
与えられた数列の a_2 から a_7 までの偶数の個数を、累積和を使うことで求め、一行で出力してください。
末尾に改行を入れ、余計な文字、空行を含んではいけません。
・入力はありません。