加算された数列の最大値
#お題
N 個の整数 a_1, a_2, ..., a_N が与えられます。
a_i に i を足したとき、a_1 , ... , a_N の最大値を出力してください。
#入力
N
a_1 a_2 ... a_N
・ 1 行目に整数 N が与えられます。
・ 1 行目に N 個の整数 a_1, a_2, ..., a_N が与えられます。
#出力
a_i に i を足したとき、a_1 , ... , a_N の最大値を出力してください。
#コード
n = int(input())
a = [int(x) for x in input().split()]
b = []
cnt = 1
for i in a:
b.append(i+cnt)
cnt += 1
print(max(b))
#参考
N = int(input())
a = list(map(int, input().split()))
ans = 0
for i in range(N):
ans = max(ans, a[i] + (i + 1))
print(ans)
- a_i に i を足す際、配列は 0 番目から数えることに注意して足してください。
a[i] += i
としてしまうと、a[0] ~ a[N-1]
に1 ~ n
をそれぞれ足すはずが、a[1] ~ a[N]
に1 ~ n
がそれぞれ足されてしまいます。(さらに、a[N] は配列外参照になってしまいます。)