/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Wrong Answer 1ms 532.0 KiB
#2 Wrong Answer 1ms 532.0 KiB

Code

#include <bits/stdc++.h>

using namespace std;

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;

template <class T>
using OS = tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>;

void solve(int cs) {
  int n;
  cin >> n;
  vector<int> c(n);
  for (int i = 0; i < n; i++) cin >> c[i];
  for (int i = 0; i < n; i++) {
    if (c[i] > (n - i - 1)) {
      cout << "NO\n";
      return;
    }
  }
  cout << "YES\n";
  OS <int> st;
  st.insert(1 << 28);
  vector<int> ans(n);
  ans.back() = *st.begin();
  for (int i = n - 2; i >= 0; --i) {
    int who;
    if (c[i] == 0) who = *st.begin() - 2 * i;
    else who = *st.find_by_order(c[i] - 1) + 2;
    ans[i] = who;
    st.insert(ans[i]);
  }
  for (int i = 0; i < n; i++) {
    cout << ans[i] << " \n"[i + 1 == n];
  }
}

int32_t main() {
  ios::sync_with_stdio(!cin.tie(0));
  int t = 1;
  cin >> t;
  for (int i = 1; i <= t; ++i) {
    solve(i);
  }
  return 0;
}

Information

Submit By
Type
Submission
Problem
P1163 Roy and Array Construction
Contest
Brain Booster #8
Language
C++17 (G++ 13.2.0)
Submit At
2025-02-17 16:32:58
Judged At
2025-02-17 16:32:58
Judged By
Score
0
Total Time
1ms
Peak Memory
532.0 KiB