#include <bits/stdc++.h>
using namespace std;
long long a[323456], ans[323456], n, p, mn, mx;
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    scanf("%I64d", &a[i]);
    if (i == 0)
      mn = mx = a[i];
    else
      mx = max(mx, a[i]), mn = min(mn, a[i]);
  }
  if (mx == mn) {
    if (mx == 0) {
      puts("YES");
      for (int i = 0; i < n; i++) printf("1 ");
      printf("\n");
    } else
      puts("NO");
    return 0;
  }
  for (int i = 0; i < n; i++)
    if (mx != a[(i - 1 + n) % n] && mx == a[i]) p = i;
  ans[p] = a[p];
  for (int i = (p - 1 + n) % n; i != p; i = (i - 1 + n) % n)
    if (i == (p - 1 + n) % n)
      ans[i] = a[i] + ans[(i + 1) % n] * 2;
    else
      ans[i] = a[i] + ans[(i + 1) % n];
  puts("YES");
  for (int i = 0; i < n; i++) printf("%I64d ", ans[i]);
  printf("\n");
  return 0;
}
