تقلب رمزی


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

رتبه‌ی ۱۶۱ سال بعد: دوره چهار حلی سه کنکور دارند!

رتبه‌ی یک پارسال: اه!اه! پس ۱۶۰ تا بذار رو رتبت!

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

لازم به ذکر است که اگر حرفی وجود داشت که به هیچ حرف دیگری تبدیل نشده بود. در رشته هم هیچ تغییری نمی‌کند.

تعداد این عملیات ها nn‌تا است.

ما فقط می‌دانیم متن تقلب‌ها رشته‌ای یکّه است. یکّه به این معناست که اگر متن اصلی گزارش برابر رشته‌ی ss و متن رمز گشایی شده (که با انجام پشت سر هم عملیات‌ها بدست آمده) برابر رشته‌ی cc‌باشد. بتوانیم از cc با انجام دادن برعکس عملیات‌ها به ss برسیم.

انجام برعکس عملیات‌ها به این معناست که اولاً از عملیات آخر شروع کنیم و تا عملیات اول برویم و دوماً اگر در عملیاتی ما a'a' را به b'b' تبدیل کردیم در برعکس آن, b'b' را به a'a' تبدیل خواهیم کرد. برای مثال اگر این دو تبدیل ، تمام عملیات‌های ما باشند:

a b
b c
Plain text

این دو تبدیل(عملیات) برعکس آن خواهد بود:

c b
b a
Plain text

برای مثال بالا "aa""aa" یک رشته‌ی یکه به طول دو محسوب می‌شود. زیرا اگر عملیات‌های اصلی روی آن انجام شود حاصل "cc""cc" است و اگر عملیات‌های برعکس روی "cc""cc"‌ اعمال شود ما دوباره به همان "aa""aa" می‌رسیم. و "bb""bb" یک رشته‌ی یکه نیست! چون اگر عملیات‌های درست روی آن اعمال شود "cc""cc" حاصل می‌شود و همانطور که گفتیم "cc""cc" در انجام دادن برعکس عملیات‌ها به "aa""aa" ختم می‌شود.

می‌خواهیم ببینیم این تقلب‌ها(رشته‌های یکّه) چند حالت مختلف به طول مشخص‌شده دارند؟؟

اما از بد حادثه تعدادی از عملیات‌های پشت سر هم اشتباهاً اضافه شده است. فلذا qq پرسش از شما می‌شود به این شکل که برای هر پرسش سه عدد t,l,rt, l, r داده می‌شود و شما باید باقی مانده تعداد رشته‌های یکه به طول tt بر 1e9+71e9+7 را با فرض این که عملیات‌های ll تا rr حذف شده‌اند چاپ کنید.

ورودی🔗

در خط اول ورودی عدد nn می‌آید. سپس در nn خط بعدی در هر خط یک جفت حرف می‌آید که نشان دهنده عملیات هاست. در خط n+2n + 2 ام عدد qq می‌آید که تعداد پرسش هاست و در نهایت qq خط که هر کدام نشانگر یک پرسش است.

1n,q200 0001 \leq n,q \leq 200\ 000

1t200 0001 \leq t \leq 200\ 000

1lrn1\leq l \leq r \leq n

تمامی کاراکتر‌های ورودی از حروف لاتین کوچک تشکیل شده‌اند.

خروجی🔗

در qq خط خروجی به ازای هر پرسش جواب آن را چاپ نمایید.

مثال🔗

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

2
a b
b c
3
1 1 2
1 1 1
1 2 2
Plain text

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

26
25
25
Plain text

در اولین پرسش به دلیل وجود نداشتن هیچ عملیاتی می‌توان از هر حرفی استفاده کرد.

در دومین پرسش نمی‌توان از "c""c" به عنوان رشته‌ی ورودی استفاده کرد زیرا بعد از عملیات، همان "c""c" می‌ماند و اگر مرحله برعکس عملیات را انجام دهیم تبدیل به "b""b" خواهد شد.

در سومین پرسش نیز نمی‌توان از "b""b" به عنوان رشته‌ی ورودی استفاده کرد.

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

7
c f
e f
c c
e d
f b
f c
f b
4
1 3 5
2 3 5
1 2 6
1 4 4
Plain text

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

23
529
24
23
Plain text
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.