Asked at Hudson River Trading, Jump Trading
Theory: C++ InternalsRead the problem, hints and solution here. The editor needs a bigger screen: open this page on a laptop to write and run your code.
xxxxxxx-xxxxxxxxx xxxx xxxx xxx xxxx xxxxxx xxxxx xxxxxxx: xxx xxxxxxx
xxxxxxxxx xxxxx xxxxx, xxxxxxx xxxx xxxxxxxx, xxx xxxxxxxxxxxx xxxx xxx
xxxxxx xxx xxxxx, xx xxx xxxxx xxxx xx xxxxxxxxx. xxx xxxxxxxx xxxx xx x
xxxx: xxxx xxx xxxxx xx xxxxx, xxxxx xx xxxx xxxxx-xxxx xxxxxx, xxx
xxxxx xxxxxxxx/xxxxxxxxxx xxxx xx xxxxxxxxx xxxx xxxx xx x(x) xxxx xxxx
xxxxxx xxxxx.
xxxxxxxxx xxxxxxxxxxxxx<x, xxxxxxxxxx>, x xxxxxxxx-xxxxxxx-xxxxxxxxxx
xxxxxxxxx xxxxxxx xxxxxx-xxxxxx xxxxxx:
xxxxxxxx::xxxxxxx(xxxxx), xx xxxxxxx xxx xxxx xxx xxxx xxxxxxxxxxxxx,
xxxx xx xxxxx xxxx xxx xxxxx xxxxxxxx. xxx xxxxxxxxxxxxxxx xxxxxx
xxxxx; xxx-xxxxx xxxxxxxx xxxxx xxxx.xxxxxxxx(x) xxxxxxx x xxxx xxxxx: xxxx xxx xxxx xxxx xx xxx xxxxx
xxx xxxx xxxxx (xxxx: xxx xxxx xxxxxxxx xxxxx xxxxx xx xxxxxxxx
xxxxx), xxxxxxxxx xxx xxxx xxxxx-xxxx xxxxx xxxxxx xxxx xxx xxxxx. xxxx
xxx xxxxxxxxxx xxxxxx xxx xxxx, xxxxx xxx::xxx_xxxxx. xxxxxxxx(x)
xxx x != x xxxx xxxxxx xxx::xxx_xxxxx: xxxx xxxx xxxxxx xxxx
xxxxxxxxxx, xxxxx xxxx xxxx xxxxxxxx xxx xxxx xx x xxxx.xxxxxxxxxx(x, x) xxxxxx xxx xxxxx xxxx xxx xxxx xxxx. xxxxx xxx
xxxx-xxxx xxxx-xxxxxxx xxxxxx xxx xxxxx xxxxx (xxxx xx xxx xxx xxxxx
xxxxxx xxxx xx xx xxxxx xxxxxx(xxxx*) xxx xxxxxxx xxx xxxx x xxx
xxxx*).xxxxx_xxxx, x
xxxxxx (xxxxxxxx xxxxxxx xx xxx xxx-xxxx xxxxxxxxxx xxxxxxxxx),
xxxxxxxxxx xxxxxxxxxxx xxx xxxxxxxx xxxxxxxxx. xxxx xxxxx xxxx xx
xxxxxx xxx xxxxxxxxxxxxx xx xxxxxxx xxxxxxxx xxx xxxxxx xxxxx xxx
xxxx. x xxxxxx xxxx xxxx
xxx::xxxx<xxxx xxxx, xxxxxxxxxxxxx<xxxx xxxx, xxxxx>> xxxxxxx xxx
xxxxxxxxxx xxx xxxxxx xxx xxxxxxxx xxxxx xxxxxx xx xxx xx xxx xxxxx.[]{ xxxxxxxx::xxxxx_xxxxxxxx(); xxxxxxxxxxxxx<xxx, xx> xxxx; xxx* x = xxxx.xxxxxxxx(x); xxx* x = xxxx.xxxxxxxx(x); *x = xx; *x = xx; xxxx xxxx xxx = *x + *x; xxxx.xxxxxxxxxx(x, x); xxxx.xxxxxxxxxx(x, x); xxxxxx xxx::xxxx<xxxx xxxx, xxxx xxxx>(xxx, xxxxxxxx::xxxxx()); }()
// (xx, x) (xxx xxxxxx xxxxxx, xxxxx xxxxxxx xxxxxxx xxxx)
[]{ xxxxxxxxxxxxx<xxx, x> xxxx; xxx* x = xxxx.xxxxxxxx(x); xxx* x = xxxx.xxxxxxxx(x); xxxx.xxxxxxxxxx(x, x); xxx* x = xxxx.xxxxxxxx(x); xxxx xxxxxx = (x == x); xxxx.xxxxxxxxxx(x, x); xxxx.xxxxxxxxxx(x, x); xxx* x = xxxx.xxxxxxxx(x); xxxx xxxx = (x == x); xxxx.xxxxxxxxxx(x, x); xxxxxx xxx::xxxx<xxxx, xxxx>(xxxxxx, xxxx); }()
// (xxxx, xxxx) (xxx xxxx xxxxxxxx xxxxx xxxxx xx xxxxxx xxxxxx xxxx)
xxxxxxxx xxxxxxxxxxxxxxx xx xxx xxxxxxxx xxxxxxxxx
xxxxxxxxxxx; xxxxxxxxx xxxxxxxx xxx xxxxxxxxxx (xxxx xxx xxxxxxx
xxxxxx xxxxx).xxx, xxxxxx, xx xxx xxxxxxxxxx xxxxxx xxxxx xxxx
xxxxxxxx::xxxxxxx.xxxxxxxx/xxxxxxxxxx xxxx xx x(x); x xxxxxx xxxx xxxxxx xxx,xxx
xxxxx/xxxx xxxxxx xxxxxxx x x-xxxxx xxxx xxx xxxxxxx xxx xxxxxxxx xxxx
xxxxx.xxxxxxxxxx xx xx xx,xxx; x xx x xxxxxx xx x xxxxxxxxx'x xxxx xxxx.This problem is only available to subscribers.