eolymp
Соревнования

Queue Data Structure

Минимум в очереди

Лимит времени 2 секунды
Лимит использования памяти 128 MiB

На вход программы подается набор операций с очередью. Каждая операция состоит в добавлении или удаления элемента из очереди. После выполнения каждой операции найдите наименьшее число, которое находится в очереди. Сложите все полученные числа и получите ответ. Если после некоторой операции очередь оказалась пуста, то ничего не прибавляйте к ответу. Если выполнить удаление невозможно, так как очередь пуста, то не выполняйте его.

Входные данные

Входные данные генерируются в самой программе. На вход подаются параметры для генерации входной последовательности.

Первое число n (1n10^6) содержит количество операций с очередью. Затем идут четыре неотрицательных числа a, b, c, x[0], не превосходящие 10000.

Для получения входных данных сгенерируем последовательность x.

Первое число в генерируемой последовательности x[1]. Первое, а также каждое следующее число вычисляется из предыдущего по формуле:

x[i] = (a * x[i-1] * x[i-1] + b * x[i-1] + c) / 100 mod 10^6,

где "/" - операция целочисленного деления, а "mod" - остаток от деления.

Если x[i] mod 5 < 2, то необходимо удалить число из очереди. В противном случае нужно добавить в очередь число x[i].

Выходные данные

Выведите искомую сумму.

Пример

Входные данные #1
2 0 0 1 81
Выходные данные #1
0
Входные данные #5
7 2 1 176 36
Выходные данные #5
60
Входные данные #7
9 5 6 777 30
Выходные данные #7
2165995
Автор В.Гольдштейн
Источник Зимние сборы в Харькове 2010 День 2