Олимпиадный тренинг

Задача . F. Максимальное модульное равенство


Дан массив \(a\) длины \(n\) и \(q\) запросов вида \(l\), \(r\).

Для каждого запроса найдите такое максимальное \(m\), что все числа \(a_l\), \(a_{l+1}\), ..., \(a_r\) равны по модулю \(m\). Иными словами, \(a_l \bmod m = a_{l+1} \bmod m = \dots = a_r \bmod m\), где \(a \bmod b\) — это остаток от деления \(a\) на \(b\). В частности, если число \(m\) может быть бесконечно большим, выведите \(0\).

Входные данные

Первая строка содержит одно целое число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных.

Первая строка каждого набора содержит два целых числа \(n\), \(q\) (\(1 \le n, q \le 2\cdot 10^5\)) — длину массива и количество запросов.

Вторая строка каждого набора содержит \(n\) целых чисел \(a_i\) (\(1 \le a_i \le 10^9\)) — элементы массива.

В следующих \(q\) строках каждого набора вводится по два числа \(l\), \(r\) (\(1 \le l \le r \le n\)) — отрезок запроса.

Гарантируется, что сумма \(n\) по всем наборам входных данных не превосходит \(2\cdot 10^5\), как и сумма \(q\) не превосходит \(2\cdot 10^5\).

Выходные данные

Для каждого запроса выведите максимальное значение \(m\), описанное в условии.

Примечание

В первом запросе первого примера \(6 \bmod 3 = 3 \bmod 3 = 0\), можно показать, что для больших \(m\) нужное условие выполняться не будет.

В третьем запросе первого примера \(14 \bmod 4 = 2 \bmod 4 = 6 \bmod 4 = 2\), можно показать, что для больших \(m\) нужное условие выполняться не будет.


Примеры
Входные данныеВыходные данные
1 3
5 5
5 14 2 6 3
4 5
1 4
2 4
3 5
1 1
1 1
7
1 1
3 2
1 7 8
2 3
1 2
3 1 4 1 0 
0 
1 6

time 5000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя