Official

C - Domino Editorial by kyopro_friends


原案:ynymxiaolongbao

あるドミノが右に倒れる場合、そのドミノより左にあるドミノは全て倒れています。

よって「現時点でどのドミノまで倒れることが確定しているか」を保持しながら、左端から順に倒れるかどうかを判定していけばよいです。

実装例(Python)

N=int(input())
A=list(map(int,input().split()))

# 座標が crr 未満のドミノは倒れることが確定している
crr=1
for i in range(N):
  # 座標 i にあるドミノが倒れるかどうか判定
  if i>=crr:
    print(i)
    exit()
  crr=max(crr, i+A[i])

print(N)

posted:
last update: