Так я не знаю это работает или нет. Кажется тут разделяйка.
То есть че:
давай запустим rec(l = 1, r = n).
и находить ответ теперь m = (l + r) / 2;
Давай посмотрим типа минимум, он жб будет где то либо в i <= x <= m или m + 1 <= j для отрезка (i, j). ну и давай допустим минимум в правой стороне то давай хранить префиксный минимум и теперь нужно найти такую границу l, что a[i] ^ a[l] == x и суффиксный минимум от m до l должен быть больше или равен минимуму на этом префиксе. Вроде бы так решается для правой стороны и тоже самое для левой.
3 лайка