終了判定
#お題
長さ N の数列Aが与えられます。 1 つ目の要素から最も左にある奇数の要素の手前までの値の和を求めてください。
形式的には、A_iが奇数かつ、区間 [A_1, A_{i - 1}] がすべて偶数であるとき、を求めてください。
#入力
N
A_1 A_2 ... A_N
#出力
答えとなる数値Sを 1 行で出力してください。末尾に改行を入れ、余計な文字、空行を含んではいけません。
S
#コード
cnt = int(input())
a = [int(x) for x in input().split()]
total = 0
for i in a:
if i % 2 == 0:
total += i
else:
break
print(total)
#参考
n = int(input())
a = [int(x) for x in input().split()]
ans = 0
for ele in a:
if ele % 2 == 1:
break
ans += ele
print(ans)
[int(x) for x in input().split()]
で半角スペース区切られた入力値をそれぞれ整数に変換してリストを生成しています。- 数列
a
の奇数の要素の 1 つ前までの和を求めればいいので、奇数のときbreak
するようにします。 - 上記のコードの構造をとれば、奇数の要素が現れたとき、
ans += ele
が実行される前にbreak
されるので、題意を満たすことができます。