- محدودیت زمان: ۳ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
یک رشتهی باینری به نام \(s\) داریم که فقط شامل کاراکترهای 0 و 1 است. هدف این است که به \(q\) پرسش درباره این رشته پاسخ دهیم.
پرسشها به دو نوع تقسیم میشوند:
- جستجوی زیررشته: در این حالت، یک رشتهی باینری \(t\) داده میشود و باید بررسی کنیم آیا این رشته به عنوان زیررشتهای متوالی در \(s\) ظاهر شده است یا خیر.
- تغییر کاراکتر: در این حالت، عدد صحیح \(k\) داده میشود و باید کاراکتر \(k\)ام رشته \(s\) را معکوس کنیم (یعنی
0به1و1به0تبدیل شود).
ورودی
در سطر اول ورودی، دو عدد صحیح و مثبت \(n\) و \(q\) داده میشود که بهترتیب طول رشتهی \(s\) و تعداد پرسشها را نشان میدهد.
\[1 \leq n, q \leq 10^5\]
در سطر دوم ورودی، یک رشته از \(n\) کاراکتر 0 یا 1 داده میشود که مقدار رشتهی \(s\) را نشان میدهد.
در \(q\) سطر بعدی، در هر سطر یکی از دو حالت زیر ورودی داده میشود.
- \(\text{? } t\)
که بهجای \(t\) رشتهی باینری داده میشود.
- \(\text{! } k\)
که بهجای \(k\) یک عدد صحیح داده میشود. \[1 \leq |t| \leq 10\] \[1 \leq k \leq n\]
تضمین میشود حداقل یک پرسش از نوع اول داده شود.
خروجی
برای هر پرسش از نوع \(?\) در صورت وجود رشتهی داده شده YES و در غیر این صورت NO چاپ کنید.
توجه کنید سیستم داوری نسبت به بزرگ و کوچک بودن حروف حساس است.
مثالها
ورودی نمونه ۱
5 6
01010
? 111
? 010
? 000
! 3
? 111
? 110
خروجی نمونه ۱
NO
YES
NO
YES
YES
ورودی نمونه ۲
6 7
010110
? 01101
! 3
? 1111
! 4
? 01101
? 1
? 0
خروجی نمونه ۲
NO
YES
YES
YES
YES
ارسال پاسخ برای این سؤال