Asked at Jump Trading, Citadel Securities
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 xxxxxxxxx<x>, x xxxxxxx xxxx xxxxx xxxx xxx xxx xxxxxx xx xxxxxxxx
xxx xxxxxxxx xxxxxxx, xxxxx xxxx xxx xxxxx xxx xxx xxxxxxxxx xxxxxxxxx.
xxxx xx xxx xxxxxxxx xxxxxx xxxxxx xxxx xxxxx xxxxxxxx xxx xxx xxxxxxx, xxx xxx xxx x xxxx-xxxx xxxxx xx xxxxxxxxxxx xxxxxxx. xxx xxxxxxxx xxx xxxxxxxx xxxxxxxxx xxx xxxx xx xxx xxxxx.
xxx xxxxxxxxx:
xxxxxxxx xxxxxxxxx(xxx::xxxx_x xxxxxxxx): xxxxx xx xxxx xxxxxxxx
xxxxxxxx. xxxxxxxx >= x.xxxx xxxx(xxxxx x& xxxxx): xxxxxx xxxxx xxx xxxxx xx xxxx. xxxxxxx
xxxx xxxx xxx xxxxx xx xxxxxxxx, xx xxxxx (xxxxxxx xxxxxxxxx) xx xxx
xxxxx xx xxxxxx. x xxxx xxxx xx xxxxxxx xxxx xxxxx() xxxxxxx xxxxxxx
xxxxx.xxx::xxxxxxxx<x> xxx(): xxxxxx xxxxx xxx xxxxx xx xxxxx xxx xxx
xxxxxx. xxxxxxx xxx xxxx xx xxxx xxxxx, xx xxx::xxxxxxx xxxx xxx
xxxxx xx xxxxxx xxx xxxxxxx. xxxxx xxxxxxxx xx xxxxx xxxx xxxx
xxxxx xx xxxxxxxxx.xxxx xxxxx(): xxxxxxxxxx. xxxxx xxxxx xxxxxxx xxxxxxxx xxx xxxxxxxx.xxxxxxxxxxxx:
xxxxx_xxx, xx xxxxx xxxxxxx xxx xxx xxxxxxxx
xxxxxxx.[]{
xxxxxxxxx<xxxx xxxx> xxxxx(xxxx);
xxx::xxxxxx<xxx::xxxxxx> xxxxxxxxx;
xxx (xxx x = x; x < x; ++x) {
xxxxxxxxx.xxxxxxx_xxxx([&xxxxx, x] {
xxx (xxxx xxxx x = x; x < xxxxxx; ++x) xxxxx.xxxx(x * xxxxxxxxx + x);
});
}
xxx::xxxxxx<xxxx xxxx> xxxxx{x}, xxx{x}, xxxxxxxxxx{x};
xxx::xxxxxx<xxx::xxxxxx> xxxxxxxxx;
xxx (xxx x = x; x < x; ++x) {
xxxxxxxxx.xxxxxxx_xxxx([&xxxxx, &xxxxx, &xxx, &xxxxxxxxxx] {
xxxx xxxx xxxxxxxx[x] = {-x, -x, -x};
xxxx xxxx xxxxxxxxxx = x, xxxxxxxx = x, xxxxxxxxxxxxxxx = x;
xxxxx (xxxx x = xxxxx.xxx()) {
xxxxx xxxx xxxx xxxxxxxx = *x / xxxxxxxxx;
xxxxx xxxx xxxx xxx = *x % xxxxxxxxx;
xx (xxx <= xxxxxxxx[xxxxxxxx]) ++xxxxxxxxxxxxxxx;
xxxxxxxx[xxxxxxxx] = xxx;
++xxxxxxxxxx;
xxxxxxxx += *x;
}
xxxxx += xxxxxxxxxx; xxx += xxxxxxxx; xxxxxxxxxx += xxxxxxxxxxxxxxx;
});
}
xxx (xxxx& x : xxxxxxxxx) x.xxxx();
xxxxx.xxxxx();
xxx (xxxx& x : xxxxxxxxx) x.xxxx();
xxxxxx xxx::xxxxx<xxxx xxxx, xxxx xxxx, xxxx xxxx>(xxxxx.xxxx(), xxx.xxxx(), xxxxxxxxxx.xxxx());
}()
// (xxxxxx, xxxxxxxxxxxx, x) (xxxxx xxxx xxxxxxxxx xxxx, xxx-xxxxxxxx xxxxx xxxxxx)
[]{ xxxxxxxxx<xxxx xxxx> xxxxx(x); xxx::xxxxxx<xxxx xxxx> xxx; xxx.xxxx_xxxx(xxxxx.xxxx(x)); xxx.xxxx_xxxx(xxxxx.xxxx(x)); xxx.xxxx_xxxx(xxxxx.xxxx(x)); xxx.xxxx_xxxx(xxxxx.xxx().xxxxx_xx(-x)); xxx.xxxx_xxxx(xxxxx.xxxx(xx)); xxx.xxxx_xxxx(xxxxx.xxx().xxxxx_xx(-x)); xxx.xxxx_xxxx(xxxxx.xxx().xxxxx_xx(-x)); xxx.xxxx_xxxx(xxxxx.xxx().xxxxx_xx(-x)); xxxxx.xxxxx(); xxx.xxxx_xxxx(xxxxx.xxxx(xx)); xxx.xxxx_xxxx(xxxxx.xxx().xxx_xxxxx()); xxxxxx xxx; }()
// [x, x, x, x, x, x, x, xx, x, x] (xxxx; xxxx xxx xxx xxxxxx xxxxx xxxxx-xxx-xxxxx)
This problem is only available to subscribers.