# 右端の数字に着目 # 右端の数字がインデックスとマッチしていなければアウト、オーバーでもアウト # そこから左に1つずつ動く、右端 # 右端からの歩数分だけの数がそこに降ってくる、そのそきに初期値と降ってくる数の和がそのインデックスの倍数必要か # 動くたびに+1してWA、動くたびに複数回分増える可能性を忘れていた N = int(input()) A = list(map(int, input().split())) for i in range(N-1, -1, -1): if A[i] == 0: A.pop() else: break remainder = len(A) #print(A, remainder) ans = 'Yes' cumu = 0 for i in range(remainder-1, -1, -1): if (A[i]+cumu)%(i+1)!=0: ans = 'No' cumu += (A[i]+cumu)//(i+1) # ここを+1としていてWA出た、複数回分になることがある #print('ans', ans, 'cumu', cumu) print(ans)