values и список запросов ranges, где ranges[i] = [from, to]. Для каждого запроса выясните, чередуется ли чётность на отрезке values[from..to] (включительно): любые два соседних числа отрезка должны быть разной чётности. Отрезок из одного числа считается подходящим.
Верните массив булевых значений, где i-й элемент — ответ на i-й запрос.
Запросов может быть много: проверять каждый отрезок заново слишком долго.values=[7, 2, 9, 4, 4, 1], ranges=[[0, 3], [2, 5], [4, 4]] → [True, False, True]
7, 2, 9, 4 чередуют нечётное и чётное — true. В 9, 4, 4, 1 два чётных числа 4 стоят рядом — false. Отрезок из одного элемента всегда подходит — true.
values=[5, 11, 6], ranges=[[0, 2], [1, 2]] → [False, True]
5 и 11 оба нечётные, поэтому первый отрезок не подходит; во втором 11 и 6 разной чётности.
values) ≤ 10⁵values[i] ≤ 10⁵ranges) ≤ 10⁵from ≤ to ≤ len(values) − 1values=[7, 2, 9, 4, 4, 1], ranges=[[0, 3], [2, 5], [4, 4]]
[True, False, True]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 82 теста на сервере, включая скрытые.