Coding
Data Structures

Rank and Select on Bits

Premium
Difficulty

Read the problem, hints and solution here. The editor needs a bigger screen: open this page on a laptop to write and run your code.

xxx xxxxxxxxxx xxxx x xxxxxx xxxx xx xxxxx, xxx xxxxxxx xxxx xxxx xxxxxxxx xxxxxxxx xxxx xxxxxxxxxx, xxxxxxx xxxxx, xxx xxxxx "xxxxx xx xxx x-xx xxxx xxxxx xx xxxx xxxxx" xxxxxxxx xx xxxxx xxxx xxxx.

  • xxxx(x): xxx xxxx xxx xxxx xxx xxxxxxxx xxxxx xxxxx ( x ).
  • xxxxxx(x): xxxxx xxx ( x )-xx xxx xxx xx.

xxxx xxx xxxxxxxx xx xxxx xxxxx, xxx xxxx xxxx xx xxxxxxxxx. xxxxxxxx xxxx xxxxxxx xx xxxxx xxxxx xx ( x(x) ), xxxxx xx xxxx xx x xxxxxx xx xx xxx xxxxxxx xx xxx xx xxxxxx-xxx xxxxxxx.

xxxxxxxxx xxxxxxxxxx xxxx x xxx::xxxxxx<xxx::xxxxxx_x>, xxxx xxx ( x ) xxxxxx xx xxxx ( x / xx ) xx xxx xxxxxxxx ( x xxxx xx ), xxxxx xxxxxxxxxxx xxx xxxxx.

  • xxxx(x): xxxx(x) xx x xxx xxxx(xxx_xxxxx) xx xxx xxxxxxxxxx.
  • xxxxxx(x): xxx xxxxx xx xxx ( x )-xx xxx xxx xxxxxxxx xxxx x, xx ( -x ) xx xxxxx xxx xxx xxxx xxxx.
  • xxxxx(): xxx xxxxx xxxxxxxxxx.

xxxxxxxxxxxx xxx xxxx ( x(x) ) xxx xxxxx xxxxxxxx xxxxx xx xxxxx; xxxx xxxx xx xxxx xxxx.

xxxxxxxx

xxxx xxxx x, x xxx x xxx xx xxx xxxxx xxxx xxx xxx xx xxx xx xxx xxxxxx:

x.xxxx(x);    // x    xxxxxxx xxxxx xxxxx x, xxxx
x.xxxx(x);    // x    xxxx x xxx x
x.xxxx(xx);   // x    xxx xx xxxx
x.xxxxxx(x);  // x
x.xxxxxx(x);  // xx   xxx xxxxxx xxxxxxx xxxx xxx xxxxxx xxxx
x.xxxxxx(x);  // -x

xxxxxxxxxxx

  • xx xx ( x.x xxxxx xx^x ) xxxx xxx ( xx^x ) xxxxxxx.
  • xxx::xxxxxxxx xx xxxxxxxxx xxx xxxxxxxx xx x xxxxxx xxxxxxxxxxx. xxx xx xxxxxx xxxx x xxx-xxxxxxxxx xxxx.
  • xxx xxxx xxxx xxxxxxxx xxx xxxx xxxxx xx xxxxxx xxxxxx x xxxx xx (x << xxxxxx) - x, xxx xxx xxxxx xxxx xx xxxx xx x xx-xxx xxxx. xxxxxxxx x xx-xxx xxxxx xx xx xx xxxxxxxxx xxxxxxxxx, xxx xxxx, xx xx xxxxxx xx xx xxxx xxxxx xxxxx xxx xxxxx.
  • xxxx xxx xxxxxx xxxx xxxxx: xxxx(xxxxxx(x)) == x xxx xxxxx xxxxx ( x ), xxxxx xxx xxxxx xxxxxx xxxxxxxx.

This problem is only available to subscribers.

Language: C++23RankSelect

Unlock the problem to run it against the tests.