Coding
OOP Design

Fix the Position Book

Premium
Difficulty

Asked at Hudson River Trading, Tower Research Capital

Theory: Order Books and Matching

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.

Available in Python and C++. You are solving it in C++. Switch to Python

xxx xxxxxxxxxxxx, x xxxxx xxxx xxxxxx xxxxxxxxx xxx xxxxxxxx xxxxxx xxx x xxxx, xxxxxxx xxxx xxxxx xx, xxxxx xxx. xxx xxxx xxxx xxx xxx xxxx xxxx.

xxxxx xx xxxx xxx xxxxx xxx x++ xxxxxxx xxxxxxx xxx xxxxxx xxxxxx xxxx xxxxx xxxxxxx. xxx xxxxxxx xx xxx:

  • x xxxxxx xxxx, xxxxxxx xxx x xxxxxxxxx xxxx, xxxxxxx xxxxx xxx xxxxx xxxx'x xxxxxxxxx;
  • x xxxx xxxx xxxxxx xxxxxxx xxxx xx xxxx xxxxxx xxx xx xxxx xxxx, xxx xxx xxxxxxxx xx xxxxxx xxxxxxx xxx xxxxx;
  • x xxxx xxxxxx xxxx xxx xxxxx xxxxxxxx xxxxxxxx xx xxxxxxx xx xxxxxxxxx xx;
  • xxx xxxx x xxxxxx xxxxx xxx xxxxxx xxxxx xxxxx xxxxx, xxxxxxx xxx xxxxxx xxxx x xxxxxxxxx xx xxx xxxx'x xxx xxxx.

xxxx xxx xxxx xxx xxx xxx xxxxx. xxx xxxxxxxxx xxxx xxx xxxxxx:

xxxxx xxxxxxxxxxxx {
xxxxxx:
    xxxx xxxx(xxxxx xxx::xxxxxx& xxxxxx, xxxx xxxx xxx, xxxx xxxx xxxxx);
    xxxx xxxx xxxxxxxx(xxxxx xxx::xxxxxx& xxxxxx) xxxxx;
    xxx::xxxxxx<xxx::xxxx<xxxx xxxx, xxxx xxxx>> xxxx_xxxx(xxxxx xxx::xxxxxx& xxxxxx) xxxxx;
    xxxx xxxx xxxxxxxx(xxxxx xxx::xxxxxx& xxxxxx) xxxxx;
    xxx::xxxxxx<xxx::xxxx<xxx::xxxxxx, xxxx xxxx>> xxxxxxxx() xxxxx;
};
  • xxxx(xxxxxx, xxx, xxxxx): xxxxxx x xxxx. xxx xx x xxx-xxxx xxxxxxx, xxxxxxxx xxx x xxx xxx xxxxxxxx xxx x xxxx, xxx xxxxx xx x xxxxxxxx xxxxxxx.
  • xxxxxxxx(xxxxxx): xxx xxx xxxxxxxx xxxx, x xxx x xxxxxx xxxxx xxxxxx.
  • xxxx_xxxx(xxxxxx): x xxx xxxxxx xx {xxx, xxxxx} xxxxx xxx xxx xxxx xxxxx xxxx, xxxxxx xxxxx, xxxx xxx xxxxxx xxxx xxx xxxxxxxx. xx xxxxxxx xxx xxxxxx xx xxxxx, xxxxx x xxxxxxxxx xx xxx xxxx'x xxx xxxx.
  • xxxxxxxx(xxxxxx): xxx xxxxxxxx xxxxxx xxx xxx xxxxxx xx xx xxxxxxx, x xx xxxx.
  • xxxxxxxx(): x xxx xxxxxx xx {xxxxxx, xxx} xxxxx, xxxxxxx xxxx xxxxxxx xxxxx xxxxxxxx xx xxx xxxx, xx xxx xxxxx xxxx xxxxxx xxx xxxxx xxxxxx.

xxxx xxxxx. x xxxx xx xxx xxxx xxxxxxxxx xx xxx xxxx xxxxxxxx, xx xx x xxxx xxxxxx, xxxxx x xxx xxx xx xxx xxxxx. x xxxx xx xxx xxxxxxxx xxxxxxxxx xxxxxx xxx xxxxxx xxxx xxxxx. xxxxxxx ( x ) xxxxx xx x xxx xxxxxx xx ( x_{xxxx{xxx}} ) xxxx x xxxx xx ( x ) xxxxxxxx ( x xxxxx (x - x_{xxxx{xxx}}) ) xxx x xxxx xxx, xxx ( x xxxxx (x_{xxxx{xxx}} - x) ) xxx x xxxxx xxx. xx xxx xxxx xx xxxxxx xxxx xxx xxxxx xxxxxxxx, xxxx xx xxxx xxxxx x xxx xxx xx xxx xxxx xxxxx, xx xxx xxxx'x xxxxxxxxx.

xxxxx xxxx xx xxxxxxxxxxx xx xxxxx xxxxx xxxx.

xxxxxxxx

xxxxxxxxxxxx x;
x.xxxx("xx", x, xxx);
x.xxxx("xx", x, xxx);
x.xxxx("xx", -x, xxx);
x.xxxxxxxx("xx");   // x
x.xxxx_xxxx("xx");  // {{x, xxx}}
x.xxxxxxxx("xx");   // xx

xxx xxxx xxx x xxxxxx xxx xxxxx xxxxx xxx, ( x xxxxx (xxx - xxx) = xx ), xxxx x xxxx xx xxx xxxxxx, ( x xxxxx (xxx - xxx) = x ). xxx xxxxx xxxxxx xx xxx.

xxxxxxxxxxxx x;
x.xxxx("xx", -x, xxx);
x.xxxx("xx", xx, xxx);
x.xxxxxxxx("xx");   // x
x.xxxx_xxxx("xx");  // {{x, xxx}}
x.xxxxxxxx("xx");   // xx

xxx xxx xxx xx xxxxxx xxx xxxxx x xxx ( x xxxxx (xxx - xxx) = xx ) xxx xxxxx x xxxx xxx xx x xx xxx.

xxxxxxxxxxx

  • xx xx ( x.x xxxxx xx^x ) xxxxx.
  • xxx xxxxxx xxxxxxxxxxx xxxx xxxxxx x xxxxx xx x,xxx,xxx xxxx xxxx xx xxx xxxxxx xxx xxxx xxxxxx xxxx xxx xxxx xx x xxxx. xxxxxxxx xxx xxxxxx xxx xxxx xxx xxxxx xx x xxx::xxxxxx xxxxxx xxxxx xxx xxxxxx xx, xxxxx xx ( x(x) ) xxx xxxxx xxx xxxx xxx xxxxxx xx xxxx.

This problem is only available to subscribers.

Language:
Python 3.12C++23
PositionBook

Unlock the problem to run it against the tests.