#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  long long int b[n];
  for (int i = 0; i < n; i++) cin >> b[i];
  int c = 0;
  for (int i = 0; i < n - 1; i++)
    if (b[i] == b[i + 1]) c++;
  if (c == n - 1 && b[0] != 0) {
    cout << "NO\n";
    return 0;
  } else if (c == n - 1) {
    cout << "YES\n";
    for (int i = 0; i < n; i++) cout << 1 << " ";
    cout << "\n";
    return 0;
  }
  int ind = 0;
  for (; ind < n; ind++) {
    if (b[ind] > b[(ind - 1 + n) % n]) break;
  }
  long long int a[n];
  a[ind] = b[ind];
  for (int i = (ind - 1 + n) % n; i != ind; i = (i - 1 + n) % n) {
    double x = a[(i + 1) % n];
    long long int y = a[(i + 1) % n];
    while (y + b[i] <= b[(i - 1 + n) % n]) {
      y += y;
      x += x;
      if (x > 1e18) {
        cout << "NO\n";
        return 0;
      }
    }
    a[i] = y + b[i];
  }
  cout << "YES\n";
  for (int i = 0; i < n; i++) cout << a[i] << " ";
  cout << "\n";
}
