#include using namespace std; mt19937 rng; vector v,f; vector s; int fet(int x){ int y=0; while (x>=0) y+=f[x], --(x&=x+1); return y; } int ffind(int y){ int x=0; for (int i=(1<<20); i; i>>=1) if ((x+i)<=f.size() and f[x+i-1] tmp(v.begin()+beg,v.begin()+end); shuffle(tmp.begin(),tmp.end(),rng); cout<<"shuffle(["; for (int i=0; i tmp(v.begin()+beg,v.begin()+end); if (iss) shuffle(tmp.begin(),tmp.end(),rng); if (iss) cout<<"sorted("; cout<<"["; for (int i=0; i=2); int want=uniform_int_distribution(1,width-1)(rng); int x=ffind(fet(beg)+want); assert(beg(1,999'999'999)(rng); v[i]=uniform_int_distribution(1,9909)(rng); s[i]=bernoulli_distribution(0.5)(rng); } for (int i=0; i