اصغر شرور میشود


  • محدودیت زمان: ۲ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

پارسا در شهری زیبا زندگی می‌کند و اصغر از شهر می خواهد دزدی کند.

پانورامای شهر را می‌توان به صورت یک رشته ss نمایش داد که هر کاراکتر نشان‌دهنده شکل ساختمان متناظر است. ساختمان‌های مختلف ممکن است شکل یکسانی داشته باشند و بنابراین در رشته با کاراکترهای یکسان نمایش داده می‌شوند. اصغر یک رشته pp را به عنوان برنامه دزدی خود انتخاب کرده است. خوشبختانه این رشته pp به دست پلیس افتاده است. حال آنها می‌خواهند تمام مجموعه ساختمان‌هایی که در خطر هستند را پیدا کنند، اما یک پیچیدگی در راه است.

به دستور شهردار جدید، برخی از ساختمان‌ها در شهر باید تخریب شوند. آنها یکی پس از دیگری و به ترتیبی که در رشته ss ظاهر می‌شوند، از چپ به راست، تخریب می‌شوند. این برنامه تخریب در شهر خوب شناخته شده است.

دزدی می‌تواند در هر زمانی اتفاق بیفتد: قبل از تمام تخریب‌های برنامه‌ریزی شده، بعد از آنها، یا بین تخریب هر دو ساختمانی که یکی پس از دیگری در برنامه تخریب هستند. با این حال، هیچ تخریبی نمی‌تواند در طول دزدی اتفاق بیفتد.

اصغر به طور دقیق طبق برنامه دزدی خود از چپ به راست دزدی می‌کند. او هیچ ساختمانی را به جز آنهایی که تخریب شده‌اند، نمی‌پراند. او فقط می‌تواند کل برنامه را اجرا کند. با این حال، ممکن است تعداد زیادی از مجموعه‌های ساختمان‌ها وجود داشته باشند که در خطر دزدیده شدن هستند.

به طور رسمی، در نظر بگیرید رشته tt که ما از ss با حذف کاراکترهای متناظر با ساختمان‌های تخریب شده به دست می‌آوریم. توجه داشته باشید که رشته tt در ابتدا برابر با ss است اما پس از هر تخریب تغییر می‌کند. اصغر می‌تواند یک مجموعه از ساختمان‌ها را دزدیده اگر در یک لحظه از زمان، این مجموعه یک زیررشته از tt را تشکیل دهد و این زیررشته برابر با رشته pp باشد.

وظیفه شما این است که دقیقا تعداد مجموعه‌هایی را که در خطر دزدیده شدن هستند، پیدا کنید.

ورودی🔗

خط اول ورودی شامل یک رشته غیرخالی ss متشکل از حروف کوچک و بزرگ انگلیسی، ارقام، کاراکترهای ', !, _, . و - است که ساختمان‌های شهر را از چپ به راست نشان می‌دهد. طول این رشته از 1,000,0001,000,000 تجاوز نمی‌کند. خط دوم ورودی شامل رشته pp است که برنامه دزدی اصغر را نشان می‌دهد. طول این رشته نیز از 1,000,0001,000,000 تجاوز نمی‌کند. خط سوم ورودی شامل یک عدد صحیح m(0ms)m (0 \leq m \leq |s|) است که طول برنامه تخریب شهردار است. خط بعدی شامل یک دنباله افزایشی از اعداد صحیح x1,x2,,xm(1x1<<xms)x_1, x_2, \ldots, x_m (1 \leq x_1 < \ldots < x_m \leq |s|) است که شاخص‌های ساختمان‌ها در ترتیبی است که باید تخریب شوند.

خروجی🔗

یک عدد صحیح که تعداد مجموعه‌های مختلف ساختمان‌ها که می‌توانند طبق برنامه اصغر دزدیده شوند.

مثال🔗

ورودی نمونه ۱🔗

aabbcc
abc
3
2 4 5
Plain text

خروجی نمونه ۱🔗

2
Plain text

توضیحات: پاسخ برای نمونه داده شده 22 است زیرا دنباله‌های ممکن از ساختمان‌ها که می‌توانند دزدیده شوند عبارتند از: 135135 (پس از دو تخریب ساختمان) و 136136 (پس از تمام سه تخریب ساختمان).