text: = sm; // skipR[c][k] <?= sm + cnt[c][N-j-1]; // } // skipV[c][k] = sm; // } // // rep(k,N) rep(c,C+1){ // ll sm = 0; // skip2L[c][k] = -ll_inf; // skip2R[c][k] = ll_inf; // if(k+skip2+5 >= N) swap(skip2L[c][k], skip2R[c][k]), continue; // rep(j,k,k+skip2){ // rep(i,usz[j]) if(c >= ulis[j][i]) sm += cnt[c-ulis[j][i]][N-j-ulis[j][i]-1]; // if(sm > ll_inf) sm = 2d18; // skip2L[c][k] >?= sm; // skip2R[c][k] <?= sm + cnt[c][N-j-1]; // } // skip2V[c][k] = sm; // } // // rep(Q){ // rd(X--, Y--); // if(Y >= cnt[C][N]) wt(-1), continue; // c = C; // rep(k,N){ // if(skipL[c][k] <= Y < skipR[c][k]){ // if(X < k + skip) wt(A[X]), break; // Y -= skipV[c][k]; // k += skip - 1; // continue; // } // if(skip2L[c][k] <= Y < skip2R[c][k]){ // if(X < k + skip2) wt(A[X]), break; // Y -= skip2V[c][k]; // k += skip2 - 1; // continue; // } // rep(i,usz[k]) if(c >= ulis[k][i]){ // if(Y < cnt[c-ulis[k][i]][N-k-ulis[k][i]-1]){ // if(X <= k + ulis[k][i]) wt(A[k+ulis[k][i]-(X-k)]), break_break; // c -= ulis[k][i]; // k += ulis[k][i]; // break_continue; // } else { // Y -= cnt[c-ulis[k][i]][N-k-ulis[k][i]-1]; // } // } // if(Y < cnt[c][N-k-1]){ // if(X == k) wt(A[k]), break; // continue; // } else { // Y -= cnt[c][N-k-1]; // } // rep(i,dsz[k]) if(c >= dlis[k][i]){ // if(Y < cnt[c-dlis[k][i]][N-k-dlis[k][i]-1]){ // if(X <= k + dlis[k][i]) wt(A[k+dlis[k][i]-(X-k)]), break_break; // c -= dlis[k][i]; // k += dlis[k][i]; // break_continue; // } else { // Y -= cnt[c-dlis[k][i]][N-k-dlis[k][i]-1]; // } // } // } // } // } // }