#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=4? atoi(argv[3]): 9909); v.assign(n,0); f.assign(n,0); s.assign(n,0); for (int i=0; i(1,999'999'999)(rng); v[i]=uniform_int_distribution(1,max_num)(rng); s[i]=bernoulli_distribution(0.5)(rng); } for (int i=0; i swictims,swalues; for (int i=n; i--;) if (not s[i] and bernoulli_distribution(0.01)(rng)) swictims.push_back(i), swalues.push_back(v[i]); shuffle(swictims.begin(),swictims.end(),rng); for (int i=swictims.size(); i--;) v[swictims[i]]=swalues[i]; gen(0,n); cout<