/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Wrong Answer 10ms 2.754 MiB
#2 Wrong Answer 11ms 2.789 MiB

Code

#include<bits/stdc++.h>
#ifdef Sabbir
#pragma GCC diagnostic ignored "-Wunused-variable"
#pragma GCC diagnostic ignored "-Wsign-compare"
#endif
using namespace std;
#ifdef Sabbir
#include <E:\CodeBox\TempBox\Debug\debug.h>
#else
#define dbg(x...)
#endif
#include <ext/pb_ds/assoc_container.hpp> 
#include <ext/pb_ds/tree_policy.hpp> 
using namespace __gnu_pbds; 
#define ordered_set tree<int, null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>
#define ll                 long long
#define all(x)             (x).begin(), (x).end()
#define in(v)               for(auto &b:v)cin>>b;
#define pb                  push_back
#define inf               (long long)1e8+7
vector<int> primes;
const ll mx = 1e6+1;
vector<bool>  isprime(mx,true);
void sieve(){
isprime[1] = false;
for(ll i = 2 ;i*i<=mx ;i++){
    if(isprime[i]){
   //primes.pb(i);
    for(ll j = i*i ;j<=mx;j+=i){
        isprime[j] = false;

    }
}
}
for(int i = 2 ;i<=mx ;i++){
    if(isprime[i])
    primes.pb(i);
   }
}
void pagol(){
    int n;
    cin>>n;
    vector<int> v(n);
    in(v);
    vector<int> g[(int)primes.size()+5];
    g[1].pb(1);
    int mot=0;
    for(int i = 2 ;i<=n;i++){
        for(auto a:primes){
            if(i%a==0){
                g[a].pb(i);
                mot=max(mot,a);
                break;
            }
        }
    }
    vector<int> ans(n+1);
    for(auto a:primes){
        if(a>mot)break;
        if(g[a].size()==0)continue;
        reverse(all(g[a]));
        ordered_set os;
        for(auto b:g[a]){
            int vot=v[b-1];
            if(vot>os.size()){
                cout<<"NO"<<endl;
                return;
            }
            if(vot==os.size()){
                if(os.size()>0)os.insert((*os.begin())+1);
                else os.insert(-1e7);
                // dbg(b-1,vot);
                ans[b]=-(*os.rbegin());
            }else{
                ans[b]=-(*os.find_by_order(vot));
            }
        }
    }
    cout<<"YES"<<endl;
    ans[1]=1;
    for(int i = 1 ;i<=n;i++){
        cout<<ans[i]<<" ";
    }
    cout<<endl;

}

int32_t main() {
  ios::sync_with_stdio(0);cin.tie(0);
  sieve();
    int t = 1;
    cin>>t;
    while (t--) {

        pagol();
    }
    return 0;
}
//যদ্দপী, আমি তাহাতেই মুগ্ধ হইয়া গিয়াছি

Information

Submit By
Type
Submission
Problem
P1163 Roy and Array Construction
Language
C++17 (G++ 13.2.0)
Submit At
2025-02-17 17:25:08
Judged At
2025-02-17 17:25:08
Judged By
Score
0
Total Time
11ms
Peak Memory
2.789 MiB