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

printЗадачи

2364. Эксперименты

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

Алиса проводит эксперименты с бактериями. Первоначально у нее одна бактерия. Каждый час количество бактерий удваивается. Алиса проводит серию из `N` экспериментов, каждый час забирая по `b_i` бактерий после очередного удвоения. Первый отбор происходит, когда единственная бактерия удвоится.
Напишите программу, вычисляющую, сколько бактерий останется у Алисы, после того как она заберет бактерии для `N`-го эксперимента.
Первая строка ввода содержит одно целое число `N` (`1\ ≤\ N\ ≤\ 100000`) – количество экспериментов. Во второй строке содержится `N` целых чисел `b_i` (`0\ ≤\ b_i\ ≤\ 2^{60}`) – количество бактерий, которое забирает Алиса для выполнения `i`-го эксперимента.
Вывести одно целое число – выведите остаток от деления на `10^9+7` количества бактерий, оставшегося у Алисы после выполнения серии экспериментов. Если в ходе выполнения серии экспериментов Алиса не может взять `b_i` бактерий из имеющихся к текущему моменту, то вместо числа вывести сообщение "error".

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

3
0 0 0

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

8

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

5
1 1 1 1 1

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

1

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

5
0 2 2 4 1

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

error

loading