Back to trackQuant Developer
Next
Track progress140 items
OS & Memory

Buddy Block Allocator

Premium
Difficulty

Asked at Hudson River Trading, Jump Trading

Theory: C++ Internals

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.

x xxxxxxx-xxxxxxx xxxxxxxxx'x xxxxxxx xxx xx xxx xxxxxxx xxx xxxxxx, xx xx xxxxxxx xx xxxx: xx xxxxx x xxxxx xxxxx xxxx x xxxx xxxxxxxxx, xx xxx xx xxxx xxx xxxxxxxxx, xxx xxxxxxxxx xxx xxx xx xxxxx xxxx xx xxxxxxx xxxx xxxxxx xxx xxxxxx.

xxx xxxxx xxxxxxxxx'x xxxxxx xx xx xxxx xxx xxxxxxxxx xxxxxxxxxx. xxxxx xxxxx xxxxxxx xx xx x xxxxx xx xxx, xxx x xxxxx xx xxxx ( x^x ) xxxxxx xxxxxx xx x xxxxxxxx xx ( x^x ), xx xxx xxxx xx xxx xxxxx xxxx xxxxxxx xx xxxxxxx xxx xxx. xxxxxxxxxx xxxxxxx xx xxx xxx x xxxxxx. xx xx xxxx xxxxx xxxx xxxxxxxxxx xxxxx xxxx xxxxxxxxxx.

xxxxxxxxx xxxxxxxxxxxxxx xxxx xx xxxxx xx ( x^{xxx_xxxxx} ) xxxxx, xx xxxxxxx ( x ) xx ( x^{xxx_xxxxx} - x ).

  • xxxxxxxx(xxxx): xxxxx xxxx xx xx x xxxxx xx xxx, xxxx xxx xxxxxxxx xxxx xxxxx xxxx xx xx xxxxx xxxx xxx, xxx xxxxx xx xx xxxx xxxxxxxxxx xxxxx xx xx xxxxxxx xxxx xxxx, xxxxxxx xxx xxxxx xxxx xxxx xxxx xxx xxxxxxx xxx xxxxxx xxxxx xxxx xx xxx xxxx xxxx xxx xxxxx xxxx. xxxxxx xxx xxxxxx, xx ( -x ) xx xx xxxxxx xx xxxxxxxxx. xxxxx xxxxxxx xxxx xxxxxx xx xxx xxxxxx xxxxx xxxxx, xxxx xxx xxxxxx xxxxxx.
  • xxxxxxxxxx(xxxxxx, xxxx): xxxxxx xxx xxxxx, xxxxxxx xxx xxxx xxxx xxxx xxx xxxxxxxxx. xx xxx xxxxx xx xxxx, xxxxx xxxx xxx xxxxx xx xxx xxxx xxxxx xx, xxx xxxx xxxxx xxxxx xxxx xxxxx xxxx.
  • xxxxxxx_xxxx(): xxx xxxx xx xxx xxxxxxx xxxx xxxxx, xx x.
  • xxxx_xxxxx(): xxx xxxxx xx xxx xxx xxxx xxxxx.

xxxxxxxx

xx x x,xxx-xxxx xxxxx:

xxxxxxxxxxxxxx x(xx);
x.xxxxxxxx(xxx);   // x    (x xxx-xxxx xxxxx)
x.xxxxxxxx(xxx);   // xxx
x.xxxxxxxx(xxx);   // xxx  (x xxx-xxxx xxxxx)
x.xxxxxxx_xxxx();  // xxx

xxx xxxxx xxxxxxx xxx xxx xxxxx xxxxxx xx xx xxx, xxx xxxxxxx xxx xxxxx xxxxxxxxx xxxx xxxx xxx xxxx, xxx xx xxxxx xxxx xxx xxxx, xxx xxx xx xxxxx xxxx xxx xxxx. xxx xxxxxx xxxxxx, xx xxx, xxx xxx xxx, xx xx xxx xxxx xxxxx, xx xxx xxxxxx xxxxxxx xxx xxx xx xxxxxx xxxx xxx xxxxxxxxxxx.

xxxxxxx xxx xxxxx xx xxx xxxx xxxx x xxx xxxx xxxxxx xxxxx, xxxxxxx xxx xxxxx xx x xx xxxxx xx xxx. xxxx xxx xxxxx xx x xx xxxx xxx xxx xxxx xxxxxx xxxx x xxx, xxxxx xxxxxx xxxx xxx xxxx xxx xxxx x xxx.

xxxxxxxxxxx

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

This problem is only available to subscribers.

Language: C++23BuddyAllocator

Unlock the problem to run it against the tests.