- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
یک دنباله از اعداد صحیح و مثبت مثل \(a_1, a_2, \dots, a_n \,\) داریم. \(q\) درخواست داریم که باید آنها را بهترتیب انجام دهیم:
درخواست نوع اول
\[+ \,\, idx \,\, val\]
در این درخواست از شما میخواهیم مقدار \(a_{idx}\) را به \(val\) تغییر بده.
درخواست نوع دوم
\[? \,\, l \,\, r\]
در این درخواست از شما میخواهیم بررسی کنید آیا بازه \(a_l, \dots, a_r\) تشکیل یک جایگشت از اعداد \(1\) تا \(r - l + 1\) میدهد یا خیر.
ورودی
در سطر اول ورودی، دو عدد صحیح و مثبت \(n\) و \(q\) با یک فاصله از هم جداشدهاند، آمده است. \[1 \leq n, q \leq 100 \ 000\]
در سطر دوم، \(n\) عدد صحیح و مثبت که نشان دهندهی مقدارهای \(a_1, a_2, \dots, a_n \,\) است. \[1 \leq a_i \leq n\]
در \(q\) سطر بعدی، در هر سطر، یکی از دو نوع دستور گفته شده در سوال میآید.
اگر درخواست از نوع اول باشد، در یک سطر ابتدا کاراکتر + میآید، سپس با یک فاصله دو عدد صحیح \(idx\) و \(val\) داده میشود.
\[1 \leq idx, val \leq n\]
اگر درخواست از نوع دوم باشد، در یک سطر ابتدا کاراکتر ? میآید، سپس با یک فاصله دو عدد صحیح \(l\) و \(r\) داده میشود.
\[1 \leq l \leq r \leq n\]
خروجی
تعداد سطرهای خروجی، به تعداد درخواستهای نوع دوم است. در صورت تشکیل جایگشت در بازه آن درخواست، عبارت YES و در صورت جایگشت نبودن آن، عبارتNO را چاپ کنید.
مثال
ورودی نمونه ۱
3 6
1 3 2
? 1 2
? 1 3
+ 2 2
? 1 2
+ 3 1
? 2 3
خروجی نمونه ۱
NO
YES
YES
YES
ورودی نمونه ۲
5 5
1 2 1 2 1
? 3 5
+ 3 3
? 1 3
? 3 5
? 2 4
خروجی نمونه ۲
NO
YES
YES
NO
ارسال پاسخ برای این سؤال