#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e18;
const int N = 150000;
const long long mod = 1e9 + 7;
map<int, int> mp;
map<string, int> ml;
long long n, m, k, a[N], b[N], f[N];
bool did[N], vis[N];
string s;
long long s1, s2, s3, s4, flag, tot, t, sum, pos, cnt, x, y, xx, yy, ans;
char v[150][150];
set<int> second;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> n;
  m = n;
  long long mx = 0;
  long long mi = 1e8;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    if (a[i] > mx) {
      t = i;
      mx = a[i];
    }
    mi = min(mi, a[i]);
  }
  if (mi == mx) {
    if (mx == 0) {
      cout << "YES" << endl;
      for (int i = 1; i <= n; i++) cout << 1 << " ";
      return 0;
    } else
      cout << "NO";
    return 0;
  } else {
    a[0] = a[n];
    for (int i = 1; i <= n; i++) {
      if (a[i] == mx && a[i - 1] != mx) t = i;
    }
    flag = 1;
    b[t] = mx;
    long long last = mx;
    n--;
    while (n--) {
      t--;
      if (t == 0) t = m;
      if (a[t] == 0 && flag)
        b[t] = 2 * last, flag = 0;
      else
        b[t] = last + a[t];
      last = b[t];
    }
    cout << "YES" << endl;
    for (int i = 1; i <= m; i++) cout << b[i] << " ";
  }
}
