Asked at Squarepoint Capital, Hudson River Trading, Chicago Trading Company
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.
xxxxx xxxxxxx xxxxxx xxxx x xxxxxx xxxx: xxxxxxx xxxxxxx xxxxxxxxxxxxxx, xxx-xx-xxx xxxx xxxxx, xxxxxxxxx-xxxx xxxxxxxxx, xxxxxxxx xxxx xxxx xxx xxxxx xxxxxx xxxx xxx xxx xxxx xxxx xxxxxx xxxx xxx. xxxxxxxx x xxxxxx xxx xxxx xx xxx xxxxx xxxxxxxxxxx, xxx xx xxxx xx xxxxx: xxxxxx xxxxxxxx xxxxx xxxx xx xxxxxxxxxxxx xxx xxx xxxxxxxxx xxxxxxxx. x xxxx xxxxxx xxx xxxxxxx xxxx xxx xxxxx xxxx xxxx x xxxxx.
xxxxxxxxx xxxxxxxxxx:
xxxxxxxx xxxxxxxxxx(xxx::xxxx_x xxxxxxxxxxx): xxxxxx xxxxxxx
xxxxxxxxxxx xxxxxx xxxxxxx, xxxx, xxxx. xxxxxxxxxxx >= x.xxxx xxxxxx(xxx::xxxxxxxx<xxxx()> xxxx): xxxxxxxx x xxxx xxx xxxxxxxxx
xx xxxx xxxxxx. xxxxx xxxxxx xxx xxxxxx xxxxxxx xxx xxx xxxx xx xxx, xxx
xxxxx xxxxxxxx xxx xxxx xxxxxx xx xxx xxxxxxxxxx xxxxxx. xxxx xxxxxx
xxxxxx xxxxxxxxxxx xxxxxx, xxx xxxx xxxx xxx xxxxxx xx x xxxx.~xxxxxxxxxx(): xxxxx xxxxxxxxx. xxxxx xxxx xxxxxxxxx xxxxxx xxx
xxxxxxxxxx xxx xxxxxxx xxxx xxxxxx xxxxxxxxx, xxxx xxx xxxxxxx xxx
xxxxxx. xxxxxxx xxxxxxx xxxxxxxx xxx xx xxxxxxx. (xxx xxxxxxxxxxx
xxxxxx, xxxxxxxx xxx xxxxxxx xxx xxxxxxxx xxxx, xx x xxxxxxxxxx xxxxxx;
xx xx xxxx xxx xxxx xxx.)xxxxxxx xxxx xxxx xxxxx xx xxxx xxxxx xxxx x xxxxxx xxxxxx xxxxx, xx xxxx xxx xxxxxx xxx xxxx xxxxxxxxxxx xx xxxxxx xxxxxxxxxx xxxxxxxxx xx xxxxxxxxxx xxxxx. xxxxxxx xxxx xxxxx xx x xxxxxxxxx xxxxxxxx xxxxx xxx xxxxx xx xxxxx; x xxxx xxxx xxxxx x xxxx xxx xxxx xxxxxx xxx xxxxx xxx xxxxxxxxx xxxx xxxx xx xxxxxx xxx xxxxx.
[]{ xxx::xxxxxx<xxxx xxxx> xxxxx{x}; { xxxxxxxxxx xxxx(x); xxx (xxx x = x; x < xxxxxx; ++x) xxxx.xxxxxx([&xxxxx] { xxxxx.xxxxx_xxx(x, xxx::xxxxxx_xxxxx_xxxxxxx); }); } xxxxxx xxxxx.xxxx(); }()
// xxxxxx (xxxxxxxxxx xxxxxxx: xxxxx xxxx xxx xxxxxxx xxxx)
[]{ xxx::xxxxxx<xxx> xxxx; xxx::xxxxx x; { xxxxxxxxxx xxxx(x); xxx (xxx x = x; x < xxxx; ++x) xxxx.xxxxxx([&xxxx, &x, x] { xxx::xxxx_xxxxx<xxx::xxxxx> xxxx(x); xxxx.xxxx_xxxx(x); }); } xxx::xxxx(xxxx.xxxxx(), xxxx.xxx()); xxx::xxxxxx<xxx> xxxxxxxx(xxxx); xxx::xxxx(xxxxxxxx.xxxxx(), xxxxxxxx.xxx(), x); xxxxxx xxx::xxxxx<xxxx xxxx, xxxx xxxx, xxxx>(xxxxxx_xxxx<xxxx xxxx>(xxxx.xxxx()), xxx::xxxxxxxxxx(xxxx.xxxxx(), xxxx.xxx(), xxx), xxxx == xxxxxxxx); }()
// (xxxx, xxxxxxx, xxxx) (xx xxxx xxxx, xx xxxx xxxxxxxxxx)
xxxxxxxxxxx xx xxxxxxx x xxx x xx xxx xxxxx; xx xx (xx^x) xxxxx xxx
xxxxxxxxx xxxxxxx xxx xxxx.xxx::xxxxxx xxxxxxxxxx xxx
xxxxxxx xxx xxxxx xxxxxxxxxx.This problem is only available to subscribers.