# 逆順ではなく問題通りの順番で考える # Ai = iとなる最小のAiを崩していく、そうしないと上から降ってきてクリアできなくなる # Ai = iとなる最小のAiを崩した後、Ai+1以後の合計が降ってくる # その合計がiの倍数であれば順次クリアできるが、倍数でなければ結局クリアできない # Aiを保っておくと考えれば、(Ai+以後合計)が倍数かどうかということになる N = int(input()) A = list(map(int, input().split())) temp = sum(A) cum = [] for i in range(N): temp -= A[i] cum.append(temp) #print(A) #print(cum) ans = 'Yes' for i in range(N): if (A[i]+cum[i])%(i+1) != 0: ans = 'No' print(ans)