printРабочее место участника

printЗадачи

2101. Монстры

Ограничения: время – 2s/4s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

В новой компьютерной игре для прохождения 85-го уровня игроку требуется уничтожить монстров в `k` комнатах. В каждой комнате изначально находится `a_i` монстров, и единственное, что может делать игрок – создавать существ по имени Февроний.
Каждое созданное существо по имени Февроний голодно и хочет насытиться, поедая монстров. Однако, с каждым ходом сила игрока растет, и поэтому Февронию первому необходим ровно один монстр, Февронию второму – два, третьему – четыре, `i`-му – `2^{i\ -\ 1}`.
После создания очередного Феврония игрок указывает ему на одну из `k` комнат, после чего Февроний идет туда. Если в этой комнате достаточно монстров для его насыщения, то он съедает столько монстров, сколько ему нужно, и умирает со счастливой улыбкой на лице. Если же ему не хватает хотя бы одного монстра, то он съедает всех, после чего выходит из комнаты и съедает игрока. Естественно, что такой вариант развития событий крайне нежелателен.
Помогите игроку выяснить, сможет ли он, создавая Феврониев, уничтожить всех монстров и остаться несъеденным.
В первой строке входного файла дано одно целое число `k` (`1\ ≤\ k\ ≤\ 5`) – количество комнат. В следующей строке даны `k` целых чисел `a_i` (`1\ ≤\ a_i\ <\ 1024`) – количества монстров в комнатах.
Выведите в выходной файл Yes, если игрок пройдет уровень, и No – в противном случае.

Пример ввода 1

2
21 10

Пример вывода 1

Yes

Пример ввода 2

3
22 10 32

Пример вывода 2

No
Источник: neerc.ifmo.ru/school
loading