هر که بامش بیش درسش بیش‌تر!


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

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

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

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

می‌خواهیم به هر کس کتاب متناسب او را بدهیم! برای اینکار هر بار می‌توانیم کتاب نفر ii ام را با نفر jj ام عوض کنیم اگر jin2+1j-i| \leq \frac{n}{2} + 1| باشد.

شما باید دنباله‌ای از جابه‌جایی‌ها بدهید که هر جابه‌جایی به صورت دو عدد ii و jj است و کتاب‌های نفر iiام و jj ام را باهم جابه‌جا می‌کند. پس از انجامِ به ترتیب جابه‌جایی‌ها، هر‌ کس باید کتاب متناسب با خودش را داشته باشد(یعنی نفر iiام کتاب موسسه‌ی iiام را داشته باشد). به علت کمبود زمان تعداد جابه‌جایی‌ها باید کوچکتر مساوی 3n2\frac{3 \cdot n}{2} باشد.

ورودی🔗

در خط اول ورودی nn تعداد افراد آمده است سپس در خط بعد یک جایگشت از اعداد 11 تا nn به عنوان آرایه‌ی aa آمده است. 1n200 0001 \leq n \leq 200\ 000 1ain1 \leq a_i \leq n

خروجی🔗

در خط اول خروجی qq تعداد جابه‌جایی‌ها بیاید. سپس qq خط در هر کدام دو عدد ii و jj باشد که بیانگر جابه‌جایی کتاب‌های ii ام و jj ام است.با این شرط که jin2+1j-i| \leq \frac{n}{2} + 1| و qq کوچکتر مساوی 3n2\frac{3 \cdot n}{2} باشد. اگر چند جواب وجود داشت یکی را چاپ کنید.

مثال🔗

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

4
3 2 1 4
Plain text

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

1
3 1
Plain text

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

5
5 4 3 2 1
Plain text

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

4
1 3
3 5
1 3
2 4
Plain text

تقلب رمزی


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

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

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

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

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

تعداد این عملیات ها 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

درخت تقلب


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

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

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

تبریک! شما کیک پخش‌کن جلسه‌ی کنکور شده‌اید! باید کاری برای حلی سه‌ای هایِ دوست داشتنی انجام دهید! حلی سه‌ای ها از روش‌های پیشرفته‌ی تقلب استفاده می‌کنند! یکی از این روش‌ها درخت تقلب است! به این صورت که هر نفر به یک راس متناظر می‌شود!

از طرف حلی سه‌ای‌ ها(!) از شما خواسته شده که برای تقلب آسان تر کار‌های زیر را بی‌چون و چرا انجام دهید!

در ابتدا یک راس به منزله‌ی مقر فرماندهی(با شماره ۱) داریم که از دیشب سر صندلی خود حاضر بوده است. هر بار یکی از این دو کار را انجام می‌دهیم:

  • 1 p : طبق برنامه یک حلی سه‌ای وارد می‌شود! اگر قبل از ورود این فرد kk فرد سر جلسه حضور داشتند ما شماره‌‌ی k+1k+1 را به آن فرد اختصاص می‌دهیم و آن را به راس شماره pp وصل می‌کنیم.

  • d v 2 : دورترین راس از مقر فرماندهی را که با vv حداکثر dd یال فاصله دارد را پیدا می‌کنیم و آن را گزارش می‌دهیم!

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

ورودی🔗

در خط اول ورودی qq تعداد کوئری‌ها می‌آید. سپس qq خط هر کدام همان طور که شرح داده شد آمده‌اند. 1q200 0001 \leq q \leq 200\ 000 0d1 000 000 0000 \leq d \leq 1\ 000\ 000\ 000 در کوئری‌ها تضمین میشود راس pp و vv در گراف وجود دارند.

خروجی🔗

به ازای هر کوئری نوع دو، جواب آن را چاپ کنید.

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

مثال🔗

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

5
1 1
1 1
2 2 10
1 3
2 2 10
Plain text

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

2
4
Plain text

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

9
1 1
1 1
1 2
2 3 3
1 4
2 3 4
1 4
1 6
2 4 2
Plain text

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

4
5
7
Plain text

منبع موثق


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

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

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

ما هم مثل شما نفهمیدیم این دیالوگ بالا برای چه وقتی بوده است! اما احتمالا ساخته‌ی ذهن مریض طراح بوده و منبع موثقی ندارد! برای اینکه دیگر این مشکل پیش نیاید! می‌خواهیم جمله‌هایی که شنیده‌ایم و به درست بودنشان اطمینان داریم را بازنویسی کنیم!!!

به این منظور جدولی n×mn \times m تعبیه شده است. در سطر xx و ستون yy به اندازه ی max(a+x×b,c+y×d)\max(a + x \times b, c + y\times d) جمله می‌نویسیم. حال مجموع تعداد جمله‌ها را از شما می‌خواهیم.

در واقع برای همه‌ی ستون‌ها یک دنباله‌ی حسابی با قدر نسبت bb و مقدار اولیه‌ی aa و برای همه‌ی سطر‌ها یک دنباله‌ی حسابی با قدر نسبت dd و مقدار اولیه cc در نظر گرفتیم و در هر خانه به تعداد بیشینه این دو عدد، جمله می‌نویسیم. شما باید جواب را که تعداد کل کلمه هاست به پیمانه‌ی 109+710 ^ 9 +7 چاپ کنید.

ورودی🔗

در تنها خط ورودی به ترتیب اعداد nn، mm، aa، bb، cc و dd آمده‌اند.

1n,m1 000 000 0001 \leq n, m \leq 1\ 000\ 000\ 000

0a,b,c,d1 000 0000 \leq a,b,c,d \leq 1\ 000\ 000

خروجی🔗

در تنها خط خروجی یک عدد به عنوان جواب مساله چاپ کنید.

مثال🔗

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

3 3 0 1 0 2
Plain text

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

21
Plain text

توضیح نمونه اول :

جفت ها عبارتند از:

(0,0) (0,2) (0,4) 
(1,0) (1,2) (1,4) 
(2,0) (2,2) (2,4) 
Plain text

که مجموع بیشینه‌های هر جفت برابر با ۲۱ می‌شود.

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

75164 100 97702 84646 95867 454
Plain text

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

997345518
Plain text

چمران


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

مصطفی جان!

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

چمران

شما از طرف شهید چمران مأمور به غذا دادن به نوزادان یتیم‌خانه شدید.

مقدار غذاها نامحدود است. nn نوزاد در یک مسیر مستقیم روی تختشان نشسته‌اند. شما می‌توانید از جایگاه هر کدام از نوزادان شروع کنید و راه بروید و به آن‌ها غذا بدهید. فاصله‌ی بین دو تخت متوالی دقیقاً یک ثانیه است و همچنین زمان مورد نیاز برای غذا دادن قابل صرف نظر است.

در ابتدا همه‌ی نوزادان در حال گریه کردن هستند. اگر نوزاد iiام aia_i ثانیه از آخرین غذا خوردنش گذشته باشد حتما گریه می‌کند، در غیر این صورت حتما ساکت و آرام نشسته است.

به محض اینکه لحظه‌ای وجود داشته باشد که تمام نوزادان ساکت‌اند شما می‌توانید یتیم‌خانه را ترک کنید. آیا شما می‌توانید از یتیم خانه خارج شوید؟

ورودی🔗

در خط اول ورودی nn تعداد خانه‌ها وجود دارد. در خط بعد nn عدد پشت سر هم آمده که آرایه‌ی aa را مشخص می‌کند. 1n200 0001 \leq n \leq 200\ 000

0ai200 0000 \leq a_i \leq 200\ 000

خروجی🔗

اگر شما می‌توانستید طوری عمل کنید که بتوانید از یتیم خانه خارج شوید YES و در غیر این صورت NO را در خروجی چاپ کنید.

مثال🔗

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

5
4 3 2 1 0
Plain text

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

YES
Plain text

از خانه ی اول به خانه ی آخر میرویم.

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

5
5 4 3 0 0
Plain text

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

NO
Plain text