#include using namespace std; // 操作を先読みする解法 // O(N^2) がTLEになるかチェック const int INF = 1e9; int main() { int N; cin >> N; vector a(N); for (int i = 1; i <= N - 1; ++i) { cin >> a[i]; } vector x(N); for (int to = 2; to <= N; ++to) { bool ok = false; for (int i = 1; i <= N - 1; ++i) { if (1 + a[i] <= to) { x[i] = to - a[i]; a[i] = INF; ok = true; break; } } if (not ok) { cout << "NO" << endl; return 0; } } cout << "YES" << endl; for (int i = 1; i <= N - 1; ++i) { cout << x[i] << endl; } }