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

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

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

Одно из главных нововведений новейшей операционной системы 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 (1n106) - размер массива, с которым будет работать Ваш менеджер памяти.

Во второй строке содержаться четыре числа 1x1, a, b, m109 + 10. С помощью них можно сгенерировать исходный массив чисел x1, x2, ..., xn. xi+1 = (a * xi + 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 выведите в отдельной строке результат запроса.

Лимит времени 10 секунд
Лимит использования памяти 512 MiB
Входные данные #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