MemSQL start[c]up Round 1 |
---|
Закончено |
Иван Дурак организует соревнование по футболу. Для этого соревнования он будет использовать следующую систему:
Например, если в начале было 20 команд, то после первого этапа останется всего 10 команд. После второго этапа останется всего пять команд, и они сыграют по одной игре каждая с каждой. Итого будет сыграно 10+5+10=25 игр.
Красная Шапочка уже зарезервировала для Ивана Дурака стадион на n игр. Помогите ему определить, сколько надо пригласить команд, чтобы в результате было сыграно ровно n игр. Если вариантов несколько, выведите их все в порядке возрастания. Если нет ни одного варианта, выведите -1.
В первой строке записано целое число n (1 ≤ n ≤ 1018), количество игр, которое следует сыграть.
Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битных чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.
Выведите все возможные количества команд, при которых будет сыграно ровно n игр, в порядке возрастания. Если ни при каком количестве команд не будет сыграно ровно n игр, выведите -1.
3
3
4
25
20
2
-1
Название |
---|