- محدودیت زمان: ۲ ثانیه
- محدودیت حافظه: ۵۱۲ مگابایت
به یک رشته مثل \(s\) یک جملهی جبری میگوییم هرگاه فقط از بتوان آن را به دو قسمت مثل \(ab\) تقسیم کرد که \(a\) یک عدد طبیعی و \(b\) رشتهای از حروف کوچک انگلیسی باشد. برای مثال رشتههای 3x و 115ali عبارت جبری هستند ولی 1x2y ،12 و xy عبارت جبری نیستند.
حال به شما یک رشته به طول \(n\) مثل \(s\) از حروف کوچک انگلیسی (کاراکترهای a تا z) و ارقام (کاراکترهای 1 تا 9) داده میشود و از شما \(q\) درخواست میشود، در خواستها دو نوع دارند:
- در درخواست نوع اول، دو عدد \(l\) و \(r\) که \(1 \leq l \leq r \leq n\) است داده میشود و تعداد زیررشتههای متوالی \(s_l, s_{l+1}, \dots, s_r\) آن که عبارت جبری هستند را چاپ کنید.
- در درخواست نوع دوم، عدد \(i\) و کاراکتر \(c\) به شما داده میشود و از شما میخواهیم \(s_i\) را به \(c\) تغییر دهید.
منظور از زیررشتهی متوالی یک رشته مثل \(s\)، رشتهای است که از حذف کردن تعدادی (حتی صفر) کاراکتر از ابتدا و انتهای آن بدست بیاید. برای مثال ode، cup زیررشتهی متوالی codecup است ولی ccup و puc زیررشتهی متوالی آن نیست.
ورودی
در سطر اول دو عدد صحیح و مثبت \(n\) و \(q\) داده میشود. \[1 \leq n, q \leq 200 \, 000\]
در سطر دوم ورودی رشتهی \(s\) شامل \(n\) کاراکتر از حروف کوچک و ارقام به طول \(n\) داده میشود. در \(q\) سطر بعدی در هر سطر یا سه عدد 1 و \(l\) و \(r\) داده میشود که نشان دهندهی درخواستی از نوع اول است.
\[1 \leq l \leq r \leq n\]
یا دو عدد 2 و \(i\) و کاراکتر c داده میشود که نشان دهندهی درخواست نوع دوم است.
\[1 \leq i \leq n\] \[c \in \{a, b, \dots, z, 1, 2, \dots, 9\}\]
خروجی
در سطرهای جداگانه، به ترتیب پاسخ پاسخ درخواستهای نوع اول را چاپ کنید. تضمین میشود حداقل یک درخواست از نوع اول وجود دارد.
مثالها
ورودی نمونه ۱
10 6
183xa11u7z
1 1 5
2 2 x
1 1 5
1 5 9
2 9 8
1 1 10
خروجی نمونه ۱
6
3
2
6
توضیح نمونه ۱
در درخواست اول تعداد زیررشتههای جبری 183xa پرسیده شده که برابر ۶ است (3x، 3xa، 83x، 83xa، 183x و 183xa).
در درخواست دوم رشتهی \(s\) به 1x3xa11u7z تبدیل میشود.
در درخواست سوم تعداد زیررشتههای جبری 1x3xa پرسیده شده که برابر ۳ است (1x، 3x و 3xa).
در درخواست چهارم تعداد زیررشتههای جبری a11u7 پرسیده شده که برابر ۲ است (1u و 11u).
در درخواست پنجم رشتهی \(s\) به 1x3xa11u9z تبدیل میشود.
در درخواست ششم تعداد زیررشتههای جبری 1x3xa11u9z پرسیده شده که برابر ۶ است (1x، 3x، 3xa، 1u، 11u و 9z).
ارسال پاسخ برای این سؤال