— Уильям...
— Что случилось?
— Кажется, что-то не так с Сениориусом...
— Я разберусь...
Сениориус изготовлен при помощи соединения специальных талисманов в определённом порядке.
Спустя 500 лет Сениориус находится в плохом состоянии, поэтому Уильям решил полностью его обследовать.
Сениориус сделан из n талисманов, которые Уильям выложил в ряд. На талисмане i написано число ai.
Для того, чтобы починить Сениориус, Уильяму необходимо выполнить m операций, одного из четырёх типов:
В первой строке содержатся четыре целых числа n, m, seed, vmax (1 ≤ n, m ≤ 105, 0 ≤ seed < 109 + 7, 1 ≤ vmax ≤ 109).
Тогда тест генерируется следующим псевдокодом:
def rnd(): ret = seed seed = (seed * 7 + 13) mod 1000000007 return retfor i = 1 to n: a[i] = (rnd() mod vmax) + 1for i = 1 to m: op = (rnd() mod 4) + 1 l = (rnd() mod n) + 1 r = (rnd() mod n) + 1 if (l > r): swap(l, r) if (op == 3): x = (rnd() mod (r - l + 1)) + 1 else: x = (rnd() mod vmax) + 1 if (op == 4): y = (rnd() mod vmax) + 1
Здесь op обозначает тип операции.
Для каждой операции типа 3 или 4 выведите ответ.
В первом тестовом примере исходный массив равен {8, 9, 7, 2, 3, 1, 5, 6, 4, 8}.
Дальнейшие операции таковы:
2 1 0 3
1 1 3 3
2000 ms 256 Mb Правила оформления программ и список ошибок при автоматической проверке задач