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.
xxxxxxxxx xxxxxxxxxx, x xxxxx xxx xx xxxxxx xxxxxxx xxxx xxx xxxxxxxxx xxxxx
xxxx xxx xxxxxx xxxxx.
x xxxxxxx xxxxxx xxxx xxxx xxxx xxxx xx xxxxxxx xxxxxxxxxxxxxx, xxx-xx-xxx xxxx xxxxx xxx xxxxxxxxx-xxxx xxxxxxxxx xx x xxxx, xx xx xxxx xxx xxxx xxxxxx xxxx xxx xxx xxxx. xxxxxxxx x xxxxxx xxx xxxx xxxxx xxxx xx xxxxxxxxxxxx xxxx xxx xxxxx xxx xxxxxxxxx xxxxxx. x xxxx xxxxxx xxx xxxxxxx xxxx xxx xxxxx xxxx xxxx x xxxxx.
xxx xxxxxxxxx:
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 xx xxxxxxxx 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.