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