Конвеєр#11536

Конвеєр

2 секунди
256 мегабайтів
Дуже складна

Одного разу Кіч і Поч вирушили працювати на завод. Вперше потрапивши на це підприємство, вони були дуже здивовані. По-перше, там було дуже запилено, через що їхні суперсили майже не діяли на оточуючих. По-друге, їм було неймовірно нудно, тому вони вирішили зіграти в гру. Для цього вони обрали конвеєр (який, з невідомої причини, не працював). На ньому лежать деталей з висотами a_1, a_2, \dots, a_n.

Кіч дає Почу завдання, які той має виконати:

  1. Завдання «reverse »: Поч повинен перевернути відрізок деталей з по .

  2. Завдання «change »: Поч повинен змінити висоту -ї деталі з a_i на (тобто виконати a_i:=x).

  3. Запит «ask »: Поч повинен визначити, чи відсортовані висоти деталей на відрізку з по строго за зростанням.

Однак Поч нещодавно намагався виконати лабораторні роботи з дисципліни «ОАіП» (врешті-решт, опинився на заводі) і йому дуже лінь виконувати команди Кіча, тому він попросив Вас допомогти перехитрити Кіча, щоб йому не довелося нічого робити вручну.

Вхідні дані

У першому рядку дано ціле додатне число n~(1 \le n \le 2 \cdot 10^5).

У другому рядку задано цілих чисел a_i~(-10^9 \le a_i \le 10^9).

У третьому рядку дано одне число q~(1 \le q \le 2 \cdot 10^5) — кількість запитів.

У наступних рядках наведені самі запити у форматі, описаному вище.

-10^9 \le x \le 10^9
1 \le i, l, r \le n

Вихідні дані

Для кожного запиту «ask» виведіть відповідь — «Yes» (без лапок), якщо висоти деталей відсортовані строго за зростанням. В іншому випадку, виведіть «No» (без лапок).

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading