Asked at Da Vinci Derivatives
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 xxxxx xxxxxxxx xxxxxx xxx xx xxxxxx xxxx xxxxx xxx xxx xxx xxxx xx
xx xxxxxxx, xxxxx xxx xxxxxxxx xxxxxxx.
x xxxx xxxxxxx xxx xxxx xxxxxxxx xxxxxx xxxxxxxx xxxx xxxxxxxxxxxx xx xxxx xxxxxxx x xxxxxxx. x xxxxxxxx xxxxxxxxx xx x xxxxxx xxxxx xx xxxxxx, xxx xx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxx. xxx xxxxxxxx xxxxxxx xxx.
xxxxxxxxx(xxxx): xxxxxx xxxx, xxxxxxxx xxx xxxxxx.xxxxxxxxxxxxxxxxx(xxxxx): xxxxxx * xxxxx / xxx, xxxxxxxxx xxxxxx
xxxx. xxxxxxxx xxxxxx xxxxxxxx xxxxxxxx xx xxx xxxx x xxxxxxxx xxxx
xxxxx: ( -xxx xxxxx x / xxx ) xx ( -x ), xxx ( -x ).xxxxxxxxxxx(xxxxx, xxxxx): xxxxxxxxxxxx, xxxxx xxxx xxxx xxxxx xx
xxxxxx xxxxxxxxx.xxxxxx(xxxxx) xxxx xxx_xxxxx, xxxxx(xxxxxx), xxxxxxx() xxx x
xxxxxxx xxxxxxxx().xxxxx xxxxx xxxxxxx xxx xxxxxx, xxxx(xxxxxx), xxxxxxxxx xx xxxxxxx xxxx:
xxxx xxxxxx xx xxx xxxxxx xxxxxxxxx xxx xxxxxx xxxx.
xxxxxx xxxxx {
xxxxxxx ~xxxxx() = xxxxxxx;
xxxxxxx xxxx xxxx xxxx(xxxx xxxx xxxxxx) xxxxx = x;
};
xxxxx xxxxxxxxx : xxxxxx xxxxx { xxxxxx: xxxxxxxx xxxxxxxxx(xxxx xxxx xxxx); /* ... */ };
xxxxx xxxxxxxxxxxxxxxxx : xxxxxx xxxxx { xxxxxx: xxxxxxxx xxxxxxxxxxxxxxxxx(xxxx xxxx xxxxx); /* ... */ };
xxxxx xxxxxxxxxxx : xxxxxx xxxxx { xxxxxx: xxxxxxxxxxx(xxxx xxxx xxxxx, xxxx xxxx xxxxx); /* ... */ };
xxxxx xxxxxx {
xxxxxx:
xxxxxxxx xxxxxx(xxx::xxxxxx_xxx<xxxxx> xxxxx);
xxxx xxx_xxxxx(xxx::xxxxxx_xxx<xxxxx> xxxxx);
xxxx xxxx xxxxx(xxxx xxxx xxxxxx);
xxx::xxxxxx<xxx::xxxx<xxxx xxxx, xxxx xxxx>> xxxxxxx() xxxxx;
xxxx xxxx xxxxxxxx() xxxxx;
};
xxxxx xx xx xxxxxxxx xxxx xxxxx xxxx xxx xxxxxxx xxxxxx, xxxxx xxxxx
xxxxxxx xxxx xx, xxx xxx xxxxxx xxxxx x xxx::xxxxxx_xxx<xxxxx>. xxx xxxxxx
xxxx xxxx xxxxxx x xxxxx xxx xxxxxx xxx xxxxx xxxx xxxxxxx xxx xxx xxxxxxxx
xx xxxxx. xxx xxxxxxx xx x xxxxxx xx {xxxxxx, xxxx} xxxxx. x++ xxxxxxx
xxxxxxxx xxxxxxx xxxxxxxxx xxxxxx xxxx, xx x xxxxx xxxxxx * xxxxx / xxx
xxxxx xxx xxxxx xxxx, xxx xxx xxxx xxx xx xxxxx xxxx.
x xxxx xxxxx xxxxxx xxxx xxx xxxx xxxxx. xxxxxx xxxxxxx xxxxxx xxxx xxxxxx xxxxx xxx xxx xxxxxx xxx xxxx xxxx xxx.
xxxxxx x(xxx::xxxx_xxxxxx<xxxxxxxxx>(x));
x.xxxxx(xxx); // x
x.xxx_xxxxx(xxx::xxxx_xxxxxx<xxxxxxxxxxxxxxxxx>(x));
x.xxxxx(xxx); // x
x.xxxxx(-xxx); // -x
x.xxxxxxxx(); // x
xxxxxx xxxx xxxxx xxx xxxx xxxx xx xxxxx xx xx xxxxxxx.
xx xxxxxxx_xxxx, xx xxxx xxxx, xx xx/xxxx xxxx xxxxxxxx xxxxx.
x xxx xxxxxxxx xxxxxx xxxx xx xxxxxx xx xxx xxxxxx xx xxx, xxx xxx xxxxxx
xxxx xxxxxx xx x xxxxx xxxxx xx xxx xxxxx xxxx.xxxxx xxxxxxx xxx xxxx, xxxx xx xx xxx xxxxxxxx, xxx xxxxxxx xxx xxxxxx
xxx xxx xxxx xx xxx xxxxxxx.This problem is only available to subscribers.