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

Задача . G. Фишки на доске


У Алисы и Боба есть доска из \(n\) строк и \(m\) столбцов. В каждой строке есть ровно одна фишка.

Алиса и Боб играют в следующую игру. Они выбирают два целых числа \(l\) и \(r\), такие, что \(1 \le l \le r \le m\), и разрезают доску таким образом, что только столбцы с \(l\) по \(r\) (включительно) принадлежат доски. То есть все столбцы левее столбца \(l\) и все столбцы правее столбца \(r\) больше не являются частью доски.

После разрезания доски они начинают свою игру на оставшейся части доски (от столбца \(l\) до столбца \(r\)). Они ходят по очереди, и первый игрок, который не может сделать ход, проигрывает. Первый ход делает Алиса, второй — Боб, третий — снова Алиса, и так далее. Во время своего хода игрок должен выбрать одну из фишек и сдвинуть ее на любое количество столбцов влево (то есть, если фишка была в столбце \(i\), ее можно переместить в любой столбец \(j < i\), а фишки в самом левом столбце двигать нельзя). Фишки не должны покидать выбранную часть доски.

У Алисы и Боба есть \(q\) пар чисел \(L_i\) и \(R_i\). Для каждой такой пары они хотят определить, кто выиграет, если \(l = L_i\) и \(r = R_i\). Обратите внимание, что эти игры рассматриваются независимо (они не влияют на положение на доске в последующих играх), и оба игрока играют оптимально.

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

В первой строке заданы два целых числа \(n\) и \(m\) (\(1 \le n, m \le 2 \cdot 10^5\)) — количество строк и столбцов, соответственно.

Во второй строке заданы \(n\) целых чисел \(c_1, c_2, \dots, c_n\) (\(1 \le c_i \le m\)), где \(c_i\) — номер столбца, в котором расположена фишка в \(i\)-м ряду (то есть, такое число обозначает фишку в клетке на пересечении \(i\)-й строки и \(c_i\)-го столбца).

В третьей строке задано одно целое число \(q\) (\(1 \le q \le 2 \cdot 10^5\)).

Затем следуют \(q\) строк, в \(i\)-й строке заданы два целых числа \(L_i\) и \(R_i\) (\(1 \le L_i \le R_i \le m\)).

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

Выведите строку из \(q\) символов. \(i\)-й символ должен быть A, если Алиса выигрывает при \(l = L_i\) и \(r = R_i\), или B, если выигрывает Боб.


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

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

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