پرس و جوهای رشته ای
Problem
مجموعه ای از رشته ها وجود دارد که در ابتدا خالی است. سه عملیات مختلف وجود دارد که باید روی این مجموعه از ردیفها انجام شود:
- 1 s: رشته داده شده را به مجموعه اضافه کنید.
- 2 k l: دریابید که آیا k رشته (الزاماً متمایز نیست) در مجموعه وجود دارد که پسوند مشترکی به طول l دارند. این پسوند نباید بزرگترین باشد.
- 3 i: رشته را از مجموعه ای که در عملیات i-ام اضافه شده است (اگر قبلاً حذف نشده است) حذف کنید.
ورودی:
خط اول شامل یک عدد صحیح است - تعداد عملیات q (1 <= q <= 10
5) باید پردازش شود.
در مرحله بعد، هر خط حاوی توضیحات درخواست است. ابتدا یک عدد 1، 2 یا 3 است که نوع درخواست را نشان می دهد.
اگر این کوئری از نوع اول باشد، رشته s در زیر آورده شده است که طول کل آن از 10 تجاوز نمی کند
5.
اگر این پرس و جو از نوع دوم باشد، دو عدد صحیح k و l داده می شود (1 <= k، l <= 10
5).
اگر این درخواست از نوع سوم باشد، عدد i داده می شود (1 <= i <= تعداد عملیات فعلی)، که i تعداد عملیات نوع اول است.
خروجی:
برای هر پرس و جو از نوع دوم، در صورت وجود خطوط لازم، کلمه "YES" و "NO" را در یک خط جداگانه چاپ کنید. در غیر این صورت.
مثال:
<بدن>
ورودی |
خروجی |
9
1 آبا
1 accba
2 2 2
2 2 3
1 aaaa
1 ابابا
2 3 2
3 1
2 3 2
| بله
نه
بله
نه |