Asked at XTX Markets, Jump Trading
Theory: Concurrency From ScratchRead the problem, hints and solution here. The editor needs a bigger screen: open this page on a laptop to write and run your code.
xxxxxxxxx xxxxxxxxxxxxxx, x xxxxxxx xxxx xxxx xxxxxxx xxxxxxxxx xx xxxx
xxxx xx xxxxx. xx xxxxxx xxx xxxxx xxxx xxxxxxx xxxxxx, xxxx xx xxx xxx xxxxx
xxxx, xxx xxxx xxx xxxxxx xx xxxx.
x xxxxxxx-xxxx xxxxxxx xxxx xx xxx xxx xxxx xx x xxxx xxxxxxx: xxxxx xxxxxx
xxxxxxxxxx xx, xxx x xxxxxxxxxx xxxxxx xxxxx xx xxxx x xxxxxx. x xxxxx xxxxxx
x xxxx xxxx xxxxxxxxxx xxx xxxxxx xxxx. x xxxxxx xxx::xxxxxx<xxxx xxxx> xx
xxxxxx xx xxx: xxxxx xxxx xxxx xxxxxxxxxx xxxxx xxx xxxx xxxxx xxxx xxxx xxxx
xxxxx xxxxx xxxx. xxxxxxxx xxxxxx xxxx. xxxx xxxxxx xxx xxx xxx xxxxxx xxxxx,
xxx xxx xxxxxx xxxx xxx xxxx xx xxxxxxx xxxx.
xxx xxxxxxxxx:
xxxxxxxx xxxxxxxxxxxxxx(xxx::xxxx_x xxxxxxxxxx): xxxxxxx xxxxxxxxxx
xxxxxxxxxxx xxxxxx, xxxx xxxxxxxxxxx xx xxxx. xxxxxxxxxx >= x.xxxx xxxxxxxxx(xxx::xxxx_x xxxxxxxxx): xxxx x xx xxxxx
xxxxxxxxx % xxxxxxxxxx xxxx x xxxxxxx xxxxxx xxx
(xxx::xxxxxx_xxxxx_xxxxxxx). xxxxxxx xxxx x xxxxxx xxx-xxxxxx xxxx xx
xxxxxxxxx xxxxxxx xxxx xx xxxxxxxxx xxxxxx. xxxx xx xxxx xxxx xxx
xxxxxx xx xxxxxxx xxxxxxxxxxxx, xxxx xx xxxxx xxx xx xxx xxxx.xxxx xxxx xxxx() xxxxx: xxx xx xxx xxxxxx. xxxxx xxxxxxxxxx xxx xx
xxxxxx xxxx xx x xxxxx xxxxxxxx xxxxx xxxxx (xxxxxxxxxx xxxxxxxxxx);
xxxxx xxx xxxxxxxxxxxx xxxxxxx xxx xxxxxx xx xxxx xx xxxxx.xxx::xxxxxx<xxxx xxxx> xxxxxxxxxxx() xxxxx: xxx xxx-xxxxx xxxxxx, xx
xxxxx xxxxx. xxxx xxxxxxxxxxx xxxxxxxx xx xxxx().xxxx xxxxx xxxx xxxx xx xxx xxx xxxxx xxxx (xxxxxxx(xx)), xx xxx
xxxxxxxx xx xxxxxxxx: xxxxxx xxxx xxxxx x xxxx xxxxx xxxx-xxxx xxxxxxx
xxxx x xxxxxx xxxxxx. xxxx xxxx xxx::xxxxxx xx xxxxxxx xxxxxxxx xxx
xxxxxxx, xx xxx::xxxxxx<xxx::xxxxxx<xxxx xxxx>> xxxx xxx xxxxxxx xxxx x
xxxxxxxxx xxxxxx; xxxx xxxxxxx xxxx xx xxxxx xxxx.
[]{
xxxxxxxxxxxxxx xxxxxxx(x);
xxx::xxxxxx<xxx::xxxxxx> xxxxxxx;
xxx (xxx x = x; x < x; ++x) {
xxxxxxx.xxxxxxx_xxxx([&xxxxxxx, x] {
xxx (xxx x = x; x < xxxxxx; ++x) xxxxxxx.xxxxxxxxx(xxxxxx_xxxx<xxx::xxxx_x>(x));
});
}
xxx (xxxx& xx : xxxxxxx) xx.xxxx();
xxxxxx xxxxxxx.xxxx();
}()
// xxxxxxx (xxxxxxx xxxx, xxx xxxxx xxxxx xxxx: xx xxxxxx xxxx)
[]{ xxxxxxxxxxxxxx xxxxxxx(x); xxx (xxx x = x; x < xx; ++x) xxxxxxx.xxxxxxxxx(xxxxxx_xxxx<xxx::xxxx_x>(x)); xxx::xxxxxx<xxxx xxxx> xxxxxx = xxxxxxx.xxxxxxxxxxx(); xxx::xxxx(xxxxxx.xxxxx(), xxxxxx.xxx()); xxxxxx xxx::xxxxx<xxxx xxxx, xxxx xxxx, xxx::xxxxxx<xxxx xxxx>>(xxxxxxx.xxxx(), xxxxxx_xxxx<xxxx xxxx>(xxxxxx.xxxx()), xxxxxx); }()
// (xx, x, [x, x, x, x]) (xxxxx x..x xxxx x xxxxxx xxx xxxxxx)
xxxxxxxxxx xxxxxxx x xxx xx; xx xx x xxxxxxx xxx (x.x xxxxx xx^x)
xxxxxxxxxx xxx xxxx.xxxxxxxxx xxxx xx xxxx-xxxx xxx xxxx-xxxx: xxx xxxxxxx xxxxx_xxx,
xx xxxxx, xx xxx xxxxx xxxx, xx xxxxxx-xxxxx xxxxxxxxxxxx xxxxxxx.This problem is only available to subscribers.