# 一番右端で数字のあるものから、すべて連続に以下が必要 # 初期値がidx以下で、上から降ってくる数と初期値の和がそのidxの倍数 N = int(input()) A = [0]+list(map(int, input().split())) cumu = 0 on_off = False ans = 'Yes' for idx in range(N, 0, -1): #print(idx, A[idx]) if on_off == False: if A[idx] > 0: on_off = True if A[idx] != idx: ans = 'No' else: cumu = 1 else: if (A[idx]+cumu)%idx != 0: ans = 'No' else: cumu += (A[idx]+cumu)//idx #print('idx', idx, 'on_off', on_off, 'ans', ans, 'cumu', cumu) print(ans)