// #pragma GCC optimize("Ofast") // #pragma GCC optimize("unroll-loops") // #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int ll; typedef unsigned long long ull; mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); ll myRand(ll B) { return (ull)rng() % B; } int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int n; cin >> n; vector a(n+1); for(int i=1;i<=n;i++){ cin >> a[i]; } int cnt=0; for(int i=n;i>0;i--){ if(!a[i])cnt++; else break; } bool ok=true; int add=-cnt; for(int i=n;i>0;i--){ if(add<0){ add++; continue; } if((a[i]+add)%i)ok=0; add=add+(a[i]+add)/i; } if(ok)printf("Yes\n"); else printf("No\n"); }