Контест Senior Производительность и кеш обновлено

Суммы по столбцам огромной матрицы без промахов кеша

Условие

Матрица n × m генерируется по строкам генератором: x₀ = seed, x_{k+1} = (x_k · 1103515245 + 12345) mod 2³¹, а элемент очередной клетки равен x_{k+1} >> 16 (целочисленный сдвиг). Клетки заполняются по строкам: (0,0), (0,1), …, (0,m−1), (1,0), ….

Посчитайте суммы S_j по каждому столбцу и выведите H = XOR по j от 0 до m−1 значений (S_j · (j + 1)) mod (10⁹ + 7).

Ввод: n, m, seed (1 ≤ n, m ≤ 4000, 0 ≤ seed < 2³¹).

Вывод: число H.

Ограничение по времени 2 секунды.

Пример 1

Ввод:

2 3 1

Вывод:

74199

Пример 2

Ввод:

1 1 0

Вывод:

0

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.