eolymp
Задачі

Розріджені таблиці

Розріджені таблиці

Ліміт часу 2 секунди
Ліміт використання пам'яті 128 MiB

Задано масив з n чисел. Потрібно написати програму, яка буде відповідати на запити наступного виду: знайти мінімум на відрізку між u та v включно.

Вхідні дані

У першому рядку задано три натуральних числа n, m (1n10^5, m10^7) та a[1] (1a[1] < 16714589) - кількість елементів у масиві, кількість запитів і перший елемент масиву відповідно. Другий рядок містить два натуральних числа u[1] та v[1] (1u[1], v[1]n) - перший запит.

Елементи a[2], a[3], ..., a[n] задано наступною формулою:

a[i+1]= (23 * a[i] + 21563) mod 16714589.

Наприклад, при n = 10, a[1] = 12345 отримується наступний масив:

a = (12345, 305498, 7048017, 11694653, 1565158, 2591019, 9471233, 570265, 13137658, 1325095).

Запити генеруються наступним чином:

u[i+1]= ((17 * u[i] + 751 + ans[i] + 2i) mod n) + 1,

v[i+1]= ((13 * v[i] + 593 + ans[i] + 5i) mod n) + 1,

де ans[i] - відповідь на запит номер i.

Вихідні дані

Вивести u[m], v[m] та ans[m] (останій запит та відповідь на нього).

Приклад

Вхідні дані #1
10 8 12345
3 9
Вихідні дані #1
5 3 1565158
Автор В.Гольдштейн
Джерело 2010 Зимние сборы в Харькове, День 2