- محدودیت زمان: ۲ ثانیه
- محدودیت حافظه: ۵۱۲ مگابایت
به یک رشته مثل $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).
ارسال پاسخ برای این سؤال