Coding
Data Structures

Binary Heap With Decrease-Key

Premium
Difficulty

Read the problem, hints and solution here. The editor needs a bigger screen: open this page on a laptop to write and run your code.

xxx::xxxxxxxx_xxxxx xxx x xxxx xx xxx xxx: xxx xxxxxx xxxxx xx xxxxxxx xx xxx xxxxxx xx xxxxxx xxx xxxxxxxx. xxxxxxxx'x xxxxxxxxxx xxxx, xxxxx-xxxx xxxxxx xxxxx xxxxxxxxxxx, xxx xxx xxxxx xxxxx xxxxx xxxxxxxxx xxxx xxx xxxx xxxxxxx xxxx. xxx xxxxxxxx xxx xx x xxxxxx xxxx xxxx xxxxxx xxxxx xxxxx xxx xxxxx, xxx xxxxxxxx xxx xxxxxxx xx x xxxxxxx xxxxxxxxxx xxxxxxxx xxxxxxx xx xxxxx xxxxxxx xxx xxx xxxx xxx xxxx xxxxxxxxxx xxxxxxxxxx xxxxxxx xxxxx xxxxxxxx.

xxxxxxxxx xxxxxxxxxxxxxx xxxx xxxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxxxxxxxx. xxxxxxxx xx xx (xxxxxxxx, xxx) xxxxxxxxx: xxxxx xxxxxxxx xxxxx, xxxx xxxxxx xx xxxxxxx xxx, xxxxx xxxxx xxxxx xxxxxxxxx xxxxxxxxxxxxx.

  • xxxx xxxxxx(xxxx xxxx xxx, xxxx xxxx xxxxxxxx): xxxx xxx xxx. xxxxxxx xxxxx (xxx xxxxxxx xxxxxxx) xx xxx xxx xx xxxxxxx xxxxxxx.
  • xxx::xxxxxxxx<xxx::xxxx<xxxx xxxx, xxxx xxxx>> xxxxxxx_xxx(): xxxxxxx xxx xxxxxxx (xxx, xxxxxxxx) xxx xxx xxxxxxxx xxxxxxx, xxx::xxxxxxx xx xxxxx. x xxx xxxxxxxxx xxxxxxx xxx xx xxxxxxxx xxxxx xxxxx.
  • xxxx xxxxxxxx_xxx(xxxx xxxx xxx, xxxx xxxx xxxxxxxxxxx): xxxx xxx xxx'x xxxxxxxx xx xxxxxxxxxxx xx xxx xxx xx xxxxxxx xxx xxxxxxxxxxx xx xxxxxxxx xxxxx xxxx xxx xxxxxxx xxxxxxxx; xxxxxxx xxxxxxx xx xxx.
  • xxx::xxxx_x xxxx() xxxxx.

xxx::xxxxxxxx_xxxxx xx xxxxxx. xxx xx xxxxx-xxxxxx xxxxxx xxxx xxxx x xxx xxxx xxx xx xxxx xxxxx, xxx xxxx xxxx xxxxx xxxxxxx xxxxxxx xxxxx xxxx: xxxxxx xxx xxxxxxxx_xxx xxxx xx, xxxxxxx_xxx xxxxx xxx xxxx xxxxxxx xxxx xxx xxxx xxx xxxxx xxxx.

xxxxxxxx

[]{ xxxxxxxxxxxxxx x; xxx::xxxxxx<xxxx xxxx> xxx; x.xxxxxx(xxx, x); x.xxxxxx(xxx, x); x.xxxxxx(xxx, x); xxx.xxxx_xxxx((xxxx xxxx)x.xxxx()); xxxx x = x.xxxxxxx_xxx(); xxx.xxxx_xxxx(x->xxxxx); xxx.xxxx_xxxx(x->xxxxxx); xxxx x = x.xxxxxxx_xxx(); xxx.xxxx_xxxx(x->xxxxx); xxxx x = x.xxxxxxx_xxx(); xxx.xxxx_xxxx(x->xxxxx); xxx.xxxx_xxxx(x.xxxxxxx_xxx().xxx_xxxxx() ? x : x); xxx.xxxx_xxxx((xxxx xxxx)x.xxxx()); xxxxxx xxx; }()
// [x, xxx, x, xxx, xxx, x, x]  (xxxxxxxx x xxxxx; xxx xxx xxxxxxxx-x xxxx xxxxxxx xx xxx xxxxx)

[]{ xxxxxxxxxxxxxx x; xxx::xxxxxx<xxxx xxxx> xxx; x.xxxxxx(x, xx); x.xxxxxx(x, xx); x.xxxxxx(x, xx); xxx.xxxx_xxxx(x.xxxxxxxx_xxx(x, xx) ? x : x); xxx.xxxx_xxxx(x.xxxxxxxx_xxx(x, xx) ? x : x); xxx.xxxx_xxxx(x.xxxxxxxx_xxx(xx, x) ? x : x); xxx.xxxx_xxxx(x.xxxxxx(x, x) ? x : x); xxxx x = x.xxxxxxx_xxx(); xxx.xxxx_xxxx(x->xxxxx); xxxx x = x.xxxxxxx_xxx(); xxx.xxxx_xxxx(x->xxxxx); xxx.xxxx_xxxx(x.xxxxxxxx_xxx(x, xx) ? x : x); xxxx x = x.xxxxxxx_xxx(); xxx.xxxx_xxxx(x->xxxxx); xxx.xxxx_xxxx(x->xxxxxx); xxxxxx xxx; }()
// [x, x, x, x, x, x, x, x, xx]  (xxxxxx, xxxxxxx xxxx xxx xxxxxxxxx xxxxxxx xxx xxxxxxxx; xxx x xxxxx xxx xxxxx xxxxx xxx xxxxxxxx)

xxxxxxxxxxx

  • xxxx xxx xxxxxxxxxx xxxx xxxx xxxx; xxxx xxx xxxxxx xxxxx xxxx xxxxxxxx.
  • xxx xxxxxxxxxx (x(xxx x)) (xxxxxxxx x(x) xxx xxx xxxxx-xxx xxxxxxx). xxx xxxxxx xxxxxxxxxxx xxxx xxxxxxx xxx,xxx xxxx, xxxxxxx xxx,xxx xxxxxxxxx xxx xxxxxx xxx xxxx, xxxxxxxxx xxx xxxxxxxxxx xxxxxxxx xx xxxxxx; xx xxxxxxx_xxx xxxx xxxxx xxx xxx xxxxxxx xxxxx xxxx xx xxxxxxx xx xx, xxxxxxx xxxx xxx xxxxxxxxx.
  • x xxxxxx xxxx xxxxxxx xxxxxxxxx xx xxxxxxxxxxx xxxxxxxxxx xxxxxxx x xxxxx-xxxxx xxxxxx, xx xxxxx xxxx (xxxxxxxx xx xxx xxxx, xxxxxxxx xxxx xxxx xxx xxxxx x xxxxxx, xxxxxxx-xxxx-xxxxxxxx) xxxx xx xxxxx.

This problem is only available to subscribers.

Language: C++IndexedMinHeap
Sample tests

Unlock the problem to run it against the tests.

Next in Quant Dev 50LFU Cache Variant