eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Менеджер памяти

Менеджер памяти

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

Одно из главных нововведений новейшей операционной системы Indows 7 - новый менеджер памяти. Он работает с массивом длины n и позволяет выполнять три самые современные операции:

  • copy(a, b, l) - скопировать отрезок длины [a, a + l - 1] в [b, b + l - 1];

  • sum(l, r) - посчитать сумму элементов массива на отрезке [l, r];

  • print(l, r) - напечатать элементы с l по r, включительно.

Вы являетесь разработчиком своей операционной системы, и Вы, безусловно, не можете обойтись без инновационных технологий. Вам необходимо реализовать точно такой же менеджер памяти.

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

Первая строка содержит целое число n (1n10^6) - размер массива, с которым будет работать Ваш менеджер памяти.

Во второй строке содержаться четыре числа 1x[1], a, b, m10^9 + 10. С помощью них можно сгенерировать исходный массив чисел x[1], x[2], ..., x[n]. x[i+1] = (a * x[i] + b) mod m.

Следующая строка содержит целое число k (1k200000) - количество запросов, которые необходимо выполнить Вашему менеджеру памяти.

Далее в k строках содержится описание запросов. Запросы заданы в формате:

  • cpy a b l - для операции copy;

  • sum l r - для операции sum (lr);

  • out l r - для операции print (lr).

Гарантируется, что суммарная длина запросов print не превышает 3000. Также гарантируется, что все запросы корректны.

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

Для каждого запроса sum или print выведите в отдельной строке результат запроса.

Пример

Входные данные #1
6
1 4 5 7
7
out 1 6
cpy 1 3 2
out 1 6
sum 1 4
cpy 1 2 4
out 1 6
sum 1 6
Выходные данные #1
1 2 6 1 2 6
1 2 1 2 2 6
6
1 1 2 1 2 6
13