Решение задачи Игра 2048 с Codeforces
Без пояснения   Просмотров: 168
Вы играете в вариацию игры 2048. Изначально у вас есть набор s, состоящий из n чисел. Все числа из этого набора являются степенью двойки.
Вы можете совершать любое количество (возможно, нулевое) операций с этим набором чисел.
Во время каждой операции вы выбираете два равных числа из s, удаляете их из набора s и добавляете в s число, равное их сумме.
Например, если s={1,2,1,1,4,2,2}, и вы выберете числа 2 и 2, то набор превратится в {1,1,1,4,4,2}.
Вы выиграете, если число 2048 окажется в вашем наборе. Например, если s={1024,512,512,4} вы можете выиграть следующим образом: выберите 512 и 512, и ваш набор превратится в {1024,1024,4}. Затем вы можете выбрать числа 1024 и 1024, и ваш набор превратится в {2048,4}.
Определите, можете ли вы выиграть в этой игре.
Вам нужно ответить на q независимых запросов.
Вы можете совершать любое количество (возможно, нулевое) операций с этим набором чисел.
Во время каждой операции вы выбираете два равных числа из s, удаляете их из набора s и добавляете в s число, равное их сумме.
Например, если s={1,2,1,1,4,2,2}, и вы выберете числа 2 и 2, то набор превратится в {1,1,1,4,4,2}.
Вы выиграете, если число 2048 окажется в вашем наборе. Например, если s={1024,512,512,4} вы можете выиграть следующим образом: выберите 512 и 512, и ваш набор превратится в {1024,1024,4}. Затем вы можете выбрать числа 1024 и 1024, и ваш набор превратится в {2048,4}.
Определите, можете ли вы выиграть в этой игре.
Вам нужно ответить на q независимых запросов.