#include #include #include #include #include #include #include using namespace std; using ll = long long; struct P { bool operator<(const P &p) const { return a < p.a; } int a, i; }; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector

p(n - 1); for (int i = 0; i < n - 1; i++) { int a; cin >> a; p[i] = { a, i }; } sort(p.begin(), p.end()); for (int i = 0; i < n - 1; i++) { if (p[i].a > i + 1) { cout << "NO" << endl; quick_exit(0); } p[i].a = i + 2 - p[i].a; } vector r(n - 1); for (int i = 0; i < n - 1; i++) { r[p[i].i] = p[i].a; } cout << "YES" << '\n'; for (int i = 0; i < n - 1; i++) { cout << r[i] << '\n'; } return 0; }