Ёжики хотят добраться до птичьей кормушки. Кормушка находится высоко, поэтому ёжики решили построить башенку, встав друг на друга. Всего в группе n ёжиков, высота i-го ёжика равна ai. Кормушка находится на высоте h. Чтобы ёжики могли добраться до кормушки, суммарная высота ёжиков в башенке должна быть не меньшее h. Чтобы башенка была наиболее устойчивой, они хотят построить башенку из минимально возможного числа ёжиков им найти это число.
Виртуальная машина (ВМ, от англ. virtual machine) — программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы и исполняющая программы для target-платформы (целевая, гостевая платформа) на host-платформе (хост-платформа, платформа-хозяин) или виртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы и даже операционные системы.
Виртуальная машина исполняет некоторый машинно-независимый код (например, байт-код, шитый код, p-код) или машинный код реального процессора. Помимо процессора, ВМ может эмулировать работу как отдельных компонентов аппаратного обеспечения, так и целого реального компьютера (включая BIOS, оперативную память, жёсткий диск и другие периферийные устройства). В последнем случае в ВМ, как и на реальный компьютер, можно устанавливать операционные системы (например, Windows можно запускать в виртуальной машине под Linux или наоборот). На одном компьютере может функционировать несколько виртуальных машин (это может использоваться для имитации нескольких серверов на одном реальном сервере с целью оптимизации использования ресурсов сервера).