eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Фаброзаври-дизайнери

Фаброзаври-дизайнери

Фаброзаври відомі своїми тонкими художніми уподобаннями та захопленням ландшафтним дизайном. Вони живуть поблизу дуже мальовничої річки і частенько перебудовують стежинку, яка йде вздовжь річки: або насипають додаткової землі, або зривають те, що є. Для того, щоб спростити ці роботи, вони поділили усю стежинку на горизонтальні ділянки пронумеровані від 1 до n, і їх перебудови влаштовані завжди однаково: они вибирають частину дороги від L-ї до R-ї ділянки (включно) і змінюють (зменшують чи збільшують) висоту на усіх цих ділянках на одну й ту ж величину (якщо до початку перебудови висоти були різними, то і після перебудови вони залишаться різними).

Оскільки, як уже було сказано, у фаброзаврів тонкі художні уподобання, кожен з них вважаєт, що їхня річка краще усього виглядає з певної висоти. Тому їм хочеться знати, чи є поблизу від їх домівки місце на стежинці, де висота на їх погляд оптимальна. Допоможіть їм у цьому разібратись.

Вхідні дані

Перший рядок містить два числа n та m - довжину дороги та кількість запитів відповідно (1n, m105). У другому рядку міститься n чисел, відокремлених пропусками - початкові висоти відповідних частин дороги; висоти не перевищують 104 за модулем. У наступних m рядках містяться запити по одному у рядку.

Запит + L R X означає, що висоту частин дороги від L-ої до R-ої (включно) потрібно змінити на X. При цьому 1LRn, а |X| ≤ 104.

Запит ? L R X означає, що потрібно перевірити, чи є між L-ою та R-ою ділянками (включаючи ці ділянки) ділянка, де дорога проходить точно на висоті X. Гарантується, що 1LRn, а |X| ≤ 109.

Вихідні дані

На кожен запит другого типу потрібно вивести в окремому рядку слово "YES" (без лапок), якщо потрібна ділянка існує, і "NO" у протилежному випадку.

Ліміт часу 3 секунди
Ліміт використання пам'яті 122.49 MiB
Вхідні дані #1
10 5
0 1 1 3 3 3 2 0 0 1
? 3 5 2
+ 1 4 1
? 3 5 2
+ 7 10 2
? 9 10 3
Вихідні дані #1
NO
YES
YES