Задачі
Менеджер пам`яті
Менеджер пам`яті
Одне з головних нововведень найновішої операційної системы \textit{Indows 7} - новий менеджер пам'яті. Він працює з масивом довжиною \textbf{N} і дозволяє виконувати три самі сучасні операції:
\begin{itemize}
\item \textbf{copy(a, b, l)} - скопіювати відрізок довжиною \textbf{\[a},\textbf{ a+l-1\]} в \textbf{\[b},\textbf{ b+l-1\]};
\item \textbf{sum(l, r)} - порахувати суму елементів масиву на відрізку \textbf{\[l, r\]};
\item \textbf{print(l, r)} - надрукувати елементи з \textbf{l} по \textbf{r}, включно.
\end{itemize}
Ви є розрабником своєї операційної системи, і Ви, безумовно, не можете обійтись без інноваційних технологій. Вам необхідно реалізувати точно такий же менеджер пам'яти.
\InputFile
Перший рядок вхідного файлу містить ціле число \textbf{N} (\textbf{1} ≤ \textbf{N} ≤ \textbf{1000000}) - розмір масиву, з яким буде працювати Ваш менеджер пам'яті.
У другому рядку містяться чотири числа \textbf{1} ≤ \textbf{X_1}, \textbf{A}, \textbf{B}, \textbf{M} ≤ \textbf{10^9+10}. З їх допомогою можна сгенерувати початковий масив чисел \textbf{X_1}, \textbf{X_2}, ..., \textbf{X_N}. \textbf{X_\{i+1\}=(A*X_i+B) mod M}.
Наступний рядок вхідного файлу містить ціле число \textbf{K} (\textbf{1} ≤ \textbf{K} ≤ \textbf{200000}) - кількість запитів, які необхідно виконати Вашому менеджеру пам'яті.
Далі у \textbf{K} рядках містяться описи запитів. Запити задано у форматі:
\begin{itemize}
\item \textbf{cpy a b l} - для операції \textbf{copy};
\item \textbf{sum l r} - для операції \textbf{sum} (\textbf{l} ≤ \textbf{r});
\item \textbf{out l r} - для операції \textbf{print} (\textbf{l} ≤ \textbf{r}).
\end{itemize}
Гарантується, що сумарна довжина запитів \textbf{print} не перевищує \textbf{3000}. Також гарантується, що усі запити коректні.
\OutputFile
Для кождого запиту \textbf{sum} або \textbf{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