Asked at Akuna Capital, IMC Trading, Hudson River Trading, Citadel Securities, The Voleon Group
Theory: Order Books and MatchingRead 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
xxxxxxxxx x xxxxxx-xxxxxxxxxx xxxxx xxxxx xxxx xxxx xxxxx-xxxx xxxxxxxx, xxx xxxxxxxx xxxxxx xx xxx xxxx xx xx xxxxxxxx xx xx xxxxxxxx xxxxxxxxx. xx xxxx xxxxx, xxx xxxxx xxxx xxxxxxx xxxxx xxxxx xxxxx.
xxx xxxxxxx x xxxx xx xxxxx xxxxxxxx, xx xxxxxxx xxxxx. xxxx xxxxxxx xx x xxxxx xxxxx xx x xxxxxx:
xxxxx_xx, x xxxx (xxx xx xxxx), xx xxxxxxx
xxxxx xx xxxxx, xxx x xxxxxxxx xxxxxxx xxx. xxx xxxxx_xx xxxxxx xx
xxxxx xxxxxx xxx xxxxxx.xxxxx_xx xx xxxxxx: xx xxxxxxx xxx xxxxx'x xxxxxxxxx
xxxxxxxx xxxx xxx xxxx. xxxxxxxxxx xx xxxxxxx, xxxxx xxxxxx, xx
xxxxxxx-xxxxxxxxx xxxxx xx x xx-xx.xxxx xxxxxxx xx x xxxxxxx xxxxxx, xxxxxxxx xx xxx xxxxxxxx. xxx xxxxx xxxxx
xxx xxxxxx xxxx xx, xx xxxx xx xx xx xx:
xxxxxx xxxxxxx {
xxx::xxxxxx xxxx; // "xxxxx" xx "xxxxxx"
xxxx xxxx xxxxx_xx = x;
xxxx xxxx = x; // 'x' xx 'x'; xxxxxx xx x xxxxxx
xxxx xxxx xxxxx = x;
xxxx xxxx xxx = x;
};
x xxxxx xxxxx xx {"xxxxx", x, 'x', xxx, x} xxx x xxxxxx xx {"xxxxxx", x}.
xxxxxxxx xxxxx, xxxxxxxxx:
x. xx xxxxxxxx xxx xxxxxxx xxxxx xxx xxxxx xx >= xxx xxxx (xxxxxx) xxx
xxxxx; xx xxxxxxxx xxxx xxxxxxx xxxxx xxx xxxxx xx <= xxx xxxx (xxxxxxx)
xxx xxxxx.
x. xxxxx xxx xxxxxxxx xxxxx xxx xxxxxxxxx xxxxxxxx xxx xxx xxxx xxxxxxx, xx
xxxxx xxxxxxx xxxxxxx xxxxxx xx xxx xxxx xxxxxxxx xxxxx xxxxx, xxx
xxxxxx x xxxxx xxxxx xx xxxx xxxxx xx xxxxxxx (xxxx xxxxxxxx).
x. xxxx xxxx xxxxxx xxx(xxxxxxxx xxxxxxxxx, xxxxxxx xxxxxxxxx) xxx xxxxxxxx
xx xxx xxxxxxx xxxxx'x xxxxx, xxx xxx xxxxxxxx xxxxx'x.
x. x xxxxxxx xxxxx xxxxxxxxx xxxxxx xxxxx xxx xxxxx xxxxxxxx xxx xxx
xxxxxxxxx. xxxx xxx xxxxxxxx xxxxx xxxxx xxxxxxxx (xx xxx xxxxxxxx xxxx
xxxxxxx), xxx xxxxxxxxx xxxxxxxx xxxxx xx xxx xxxx xx xxx xxxxx xxxxx,
xxxxxxx xxx xxxx xx xxxx xxxxx xxxxx'x xxxxx.
xxxxxxxxx xxxxxxx_xxxxxx(xxxxxx) xxxxxxxxx xxx xxxxx xx xxxxxxxxx xxxxx,
xxxx xxxx xxxxxxx xxx_xxxxx_xx, xxxx_xxxxx_xx, xxxxx xxx xxx,
xxxxxxxxxx xx xxxxx xxxx xxx xxx xxxxxxxx xxxxx.
xxx::xxxxxx<xxx::xxxxx<xxxx xxxx, xxxx xxxx, xxxx xxxx, xxxx xxxx>> xxxxxxx_xxxxxx(
xxxxx xxx::xxxxxx<xxxxxxx>& xxxxxx);
xxxx xxxx xx {xxx_xxxxx_xx, xxxx_xxxxx_xx, xxxxx, xxx}.
xxxxxxx_xxxxxx({{"xxxxx", x, 'x', xxx, x}, {"xxxxx", x, 'x', xxx, x}, {"xxxxx", x, 'x', xxx, x}});
// {{x, x, xxx, x}, {x, x, xxx, x}}
// xxx xxx xxx x xxxxx xxx xxxx xxx (xxx) xxxxx, xxxx xxx xxx xxx; xxxx xxxx
// xxxxxx xx xxx xxxxxxx xxxxx'x xxxxx.
xxxxxxx_xxxxxx({{"xxxxx", x, 'x', xxx, x}, {"xxxxx", x, 'x', xxx, x}, {"xxxxx", x, 'x', xxx, x}});
// {{x, x, xxx, x}, {x, x, xxx, x}}
// xxx xxxx xxx x xxxx xxx xxx xxx xxxxx xx xxxx xxxxxxxx: xxxxx x xxxxx,
// xxxx xxxxx x xxxxxxxxx; xxxxx x xxxxx x xxx xxxxxxx xx xxx.
This problem is only available to subscribers.