ضرب زیر مجموعه‌ای


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

یه روز بهاری که عمو در خانه تنها نشسته بود، حوصله‌ش سر رفته بود و به دنبال سرگرمی بود. او به ازای تمام زیرمجموعه های 1,2,...,n{1, 2, ..., n} ضرب اعضای آن را محاسبه کرد و میخواست آن ها را روی کاغذ یادداشت کند.

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

ورودی🔗

در تنها خط ورودی شامل عدد nn داده می‌شود.

خروجی🔗

جواب مسئله به ازای عدد ورودی را چاپ کنید.

محدودیت‌ها🔗

1n201 \leq n \leq 20

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

1
Plain text

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

1
Plain text

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

3
Plain text

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

4
Plain text

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

4
Plain text

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

8
Plain text

بازم ضرب


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

عمو که دیگر حال داستان سرایی ندارد، صورت سوال را بدون هیچ گونه داستانی برای شما میگوید:

او یک آرایه nn عضوی به نام aa دارد که تمامی عناصر آن فرد هستند. سپس او qq درخواست از شما میکند که به یکی از تو فرم زیر می‌باشند.

  1. اعداد l,r,xl, r, x به ترتیب داده می‌شوند. سپس به ازای هر lirl \leq i \leq r مقدار عنصر aia_i به اندازه xx واحد زیاد کنید. همچنین به علت علاقه عمو به اعداد زوج، تضمین میکند که xx حتما زوج است.
  2. اعداد l,rl, r به ترتیب داده می‌شوند. سپس شما باید به عمو ضرب aia_i که lirl \leq i \leq r است را بگویید. عمو به علت کهولت سن توانایی پردازش اعداد بزرگ را ندارد، به همین علت شما کافی است جواب را باقی مانده به پیمانه 2202^{20} بگویید.

ورودی🔗

در خط اول ورودی شامل دو عدد nn و qq است که به ترتیب نشانگر سایز آرایه و تعداد درخواست ها می‌باشد. در خط بعدی nn عدد داده میشود که اعداد آرایه عمو هستند. در qq خط بعدی در هر خط یک پرسش داده میشود. در ابتدای هر پرسش عدد tt می‌آید که نوع درخواست را مشخص می‌کند. سپس با توجه به نوع درخواست یکی از دو حالت زیر داده میشود

  1. 1 l r x که درخواست از نوع اول را نشان میدهد.
  2. 2 l r که درخواست از نوع دوم را نشان میدهد.

خروجی🔗

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

محدودیت‌ها🔗

1n,q21051 \leq n, q \leq 2*10^5 1ai<2201 \leq ai < 2^{20} 1lrn1 \leq l \leq r \leq n 0x2200 \leq x \leq 2^{20}

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

10 10
969575 741825 24903 1047319 450475 256145 1045323 479255 810659 768323
1 5 6 3034
2 1 10
2 1 9
2 1 4
1 3 6 126904
2 5 5
2 9 9
1 7 7 853094
1 4 9 1025178
2 5 8
Plain text

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

1045541
1012343
558151
580413
810659
527353
Plain text

رانندگی ایمن عمو


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

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

عمو دارد برای سفر بعدی‌اش برنامه ریزی می‌کند که باید رانندگی کند. او مسیرش یک جاده صاف به طول LL واحد است و حداکثر سرعت مجاز 11 واحد در ثانیه است. عمو در زمان 00 رانندگی خود را آغاز خواهد کرد. جاده دارای NN چراغ راهنمایی به شماره 11 تا NN است. چراغ راهنمایی ii در فاصله xix_i واحد از نقطه شروع قرار دارد. در زمان 00، تمام NN چراغ راهنمایی به تازگی از قرمز به سبز تغییر کرده‌اند. چراغ راهنمایی ii بعد از gig_i ثانیه قرمز می‌شود، سپس بعد از rir_i ثانیه از قرمز به سبز تغییر می‌کند، سپس دوباره بعد از gig_i ثانیه قرمز می‌شود، سپس مجدداً بعد از rir_i ثانیه از قرمز به سبز تغییر می‌کند و به همین ترتیب ادامه می‌دهد.

در این شرایط، عمو از نقطه شروع حرکت کرده و با سرعت 11 واحد در ثانیه رانندگی خواهد کرد. اگر چراغ راهنمایی ii سبز باشد یا به تازگی از قرمز به سبز تغییر کرده باشد، وقتی عمو به xix_i می‌رسد، او متوقف نمی‌شود و با سرعت 11 واحد در ثانیه از تقاطع عبور می‌کند. اما اگر چراغ راهنمایی ii قرمز باشد یا به تازگی از سبز به قرمز تغییر کرده باشد، وقتی عمو به xix_i می‌رسد، او تا زمانی که چراغ راهنمایی ii دوباره سبز شود متوقف می‌شود.

وظیفه شما این است که با توجه به توصیف‌های NN چراغ راهنمایی، زمانی که عمو به نقطه LL می‌رسد را محاسبه کنید.

ورودی🔗

  • اولین خط ورودی شامل دو عدد صحیح NN (تعداد چراغ‌های راهنمایی) و LL (طول جاده) است.
  • هر یک از NN خطوط بعدی شامل سه عدد صحیح xix_i، gig_i، و rir_i است که نشان‌دهنده موقعیت چراغ راهنمایی ii از نقطه شروع، مدت زمان سبز بودن (gig_i) و مدت زمان قرمز بودن (rir_i) است.

توجه داشته باشید که موقعیت‌های همه چراغ‌های راهنمایی با هم متفاوت هستند. یعنی xixjx_i ≠ x_j برای همه iji ≠ j.

1N105 1 \le N \le 10^5 1L109 1 \le L \le 10^9 1xi<L 1 \le x_i < L 1ri,gi109 1 \le r_i, g_i \le 10^9

خروجی🔗

  • یک خط با یک عدد صحیح که زمان رسیدن عمو به نقطه LL را در ثانیه‌ها نمایش می‌دهد.

مثال🔗

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

3 10
3 3 3
6 2 2
9 3 6
Plain text

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

19
Plain text

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

1 101
50 900 1
Plain text

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

101
Plain text

عدد مخلوط جهش یافته


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

یک عدد مخلوط را می‌توان توسط سه عدد طبیعی (abc)(a\, b\, c) نشان داد که با a+bca + \frac{b}{c} معادل است. یک عدد مخلوط جهش یافته به صورت (abc)(a'\, b'\, c') تعریف می‌شود که در آن aa'، bb'، cc' می‌توانند اعداد طبیعی یا دیگر اعداد مخلوط جهش یافته باشند. توجه کنید که یک عدد مخلوط جهش یافته معادل یک عدد کسری است. برای یک عدد مخلوط جهش یافته، می‌خواهیم که مقدار آن را به‌صورت یک کسر غیرقابل کاهش (کسری که صورت و مخرج آن نسبت به هم اول باشند) بیان کنیم. به عنوان مثال، کسر غیرقابل کاهش معادل عدد مخلوط جهش یافته ((124)(523)(43(273)))( (1\, 2\, 4)\, (5\, 2\, 3)\, (4\, 3\, (2\, 7\, 3) ) ) به صورت زیر است: (1+24)+5+234+32+73=991366 \left(1 + \frac{2}{4}\right) + \displaystyle\frac{5 + \displaystyle\frac{2}{3}}{4 + \displaystyle\frac{3}{2 + \displaystyle\frac{7}{3}}} = \displaystyle\frac{991}{366}

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

ورودی🔗

در خط اول عدد طبیعی nn داده می‌شود (2n1002 \le n \le 100)، که nn تعداد کاراکترهای عدد مخلوط جهش یافته داده‌شده است. خط دوم شامل nn کاراکتر جداشده با فاصله است که کاراکتر ها شامل پرانتزها و اعداد بین 11 تا 99 هستند. توجه کنید که اعداد داده شده تک رقمی و حداقل یک هستند.

خروجی🔗

دقیقا یک خط چاپ کنید. اگر پاسخ به‌صورت xy\frac{x}{y} باشد، خط باید شامل دو عدد صحیح xx و yy باشد که نسبت به هم اول هستند. در غیر این صورت (برای مثال، اگر ورودی معتبر نباشد)، مقدار -1 را چاپ کنید. تضمین شده است که پاسخ‌ها در اعداد صحیح ۶۴-بیتی جا می‌گیرند.

محدودیت ها🔗

2n2002 \leq n \leq 200

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

5
( 1 2 3 )
Plain text

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

5 3
Plain text

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

8
( 1 2 ( 3 4 5 )
Plain text

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

-1
Plain text

تعداد پرانتز و بسته ها مطابقت ندارد.

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

21
( ( 1 2 4 ) ( 5 2 3 ) ( 4 3 ( 2 7 3 ) ) )
Plain text

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

991 366
Plain text

تک پر


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

عمو و گورو به مشکل خورده اند. داستان از جایی شروع شد که عمو از حیاط خانه شان یه درخت nn راسی کند و شروع به بررسی درختش کرد و متوجه شد که هر یال درختش دو حالت دارد :باز یا بسته. در ابتدا تمام یال های درخت باز بودند.

او که از این قابلیت درختش شگفت زده شده بود درخت را پیش گورو برد تا باهم بازی کنند. گورو که خوشبختی رو تو تک پر بودن میدید یک مهره روی راس 1 درخت گذاشت و این بازی را روی درخت تعریف کرد:

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

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

ورودی🔗

خط اول ورودی شامل عدد nn ، تعداد رئوس درخت است. در هر یک از n1n - 1 خط بعدی ، دو عدد u,vu , v آمده است که نشانگر وجود یال بین رئوس uu و vv در درخت است.

خروجی🔗

در صورت بهینه بازی کردن دو نفر ، اگر گورو بازی را می برد 1 و اگر عمو بازی را می برد 0 خروجی دهید.

محدودیت ها🔗

1n105 1 \leq n \leq 10^5 1u,vn 1 \leq u , v \leq n

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

6
1 2
2 3
2 4
1 5
5 6
Plain text

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

0
Plain text

عمو می تواند ابتدا یال بین رئوس 1 و 2 را ببندد. در این صورت گورو مجبور است مهره را به راس 5 ببرد. از آنجایی که درجه 5 بیشتر از 1 است ، پس بازی ادامه پیدا می کند. در این مرحله عمو می تواند یال بین رئوس 5 و 6 را ببندد و گورو را مجبور کند تا مهره را به راس 1 برگرداند. سپس با بستن یال بین رئوس 1 و 5 برنده بازی شود. زیرا گورو دیگر نمی تواند مهره را جابجا کند. در نتیجه عمو بازی را می برد.

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

7
1 2
2 3
2 4
1 5
5 6
5 7
Plain text

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

1
Plain text

در این مثال عمو به هر نحوی بازی کند، گورو می تواند مهره را به یک راس درجه 1 برساند. در نتیجه گورو برنده می شود.

روبیک فروشی


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

عمو پس از به ارث بردن مقدار زیادی پول به دنبال راهی برای سرمایه گذاری بود تا بتواند بیشتر درآمد داشته باشد. پس از مشورت با دوستان خود به این نتیحه رسید که مغازه‌ای باز کند و در آن مکعب روبیک بفروشد. دوست عمو برای مغازه او kk روبیک آورده است که هر کدام به شکل یک مکعب مربع هستند. هر مکعب شامل nnn n*n*n مکعب 111 1*1*1 است که ابعاد همه آنها یکسان است.

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

حال عمو از شما می‌خواهد که بگویید به ازای هر مکعب با ابعاد nnnn*n*n چند عدد mm وجود دارد که بتوان آن را با چسب زدن به mmmm*m*m تبدیل کرد.

برای درک بهتر سوال به نمونه ورودی توجه کنید.

ورودی🔗

در خط اول ورودی شامل عدد kk که نشانگر تعداد روبیک های موجود در مغازه است، داده می‌شود. در kk خط بعدی در هر خط ابعاد هر یک از روبیک ها داده میشود.

خروجی🔗

به ازای هر روبیک بگویید که به عنوان چه روبیک هایی قابل فروختن است.

محدودیت‌ها🔗

1k10001 \leq k \leq 1000 1n10001 \leq n \leq 1000

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

2
3
4
Plain text

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

2
4
Plain text

مکعب ۳ در ۳ در ۳ فقط به عنوان مکعب ۳ در ۳ در ۳ و ۱ در ۱ در ۱ قابل فروش است.

مکعب ۴ در ۴ در ۴ را میتوان به عنوان ۲ در ۲ در ۲ فروخت. (چسباندن خانه ها گوشه به تمامی خانه های مجاور راسی آن ها). به عنوان ۳ در ۳ در ۳ نیز میتوان فروخت، به این صورت که مرکز های مجاور را به هم میچسباند و وسط اضلاع را نیز به هم چسب میزند). به عنوان ۴ در ۴ در ۴ و ۱ در ۱ در ۱ نیز میتوان فروخت. در شکل زیر تبدیل ۴ در ۴ در ۴ به دو حالت گفته شده نشان داده شده. (خانه ها مجاور همرنگ به هم چسبیده اند).

تبدیل های روبیک ۴ در ۴ در ۴

دابل صعودی


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

عمو دنباله ی اعداد A=a1,a2,,aNA = a_1, a_2, \dots, a_N را از دفترچه خاطرات بچگی‌اش پیدا کرده است. در کنار این دنباله نوشته شده بود که طول بلندترین زیردنباله صعودی آن را بیابید. عمو که دیگر پیر شده بود، برای اینکه خودش را به چالش بکشد سوال را به شکل زیر عوض کرد و سعی کرد آن را حل کند. به جای بلندترین زیردنباله صعودی، بلندترین دنباله مانند B=b1,b2,,bMB = b_1, b_2, \dots, b_M را پیدا کنید که زیر دنباله دابل صعودی باشد. یعنی دو شرط زیر را داشته باشد:

  • دنباله‌ی BB یک زیردنباله از AA باشد.
  • برای تمامی ii ها که 1iM21 \leq i \leq M - 2، شرط bi<bi+2b_i < b_{i+2} برقرار باشد.

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

حال عمو که این سوال را حل کرده و از آن خوشش آمده، آن را به شما نیز میدهد تا خودتان را به چالش بکشید.

ورودی🔗

  • اولین خط ورودی شامل یک عدد صحیح NN است که تعداد عناصر دنباله AA را نشان می‌دهد.
  • خط دوم شامل NN عدد صحیح است که مقادیر a1,a2,,aNa_1, a_2, \dots, a_N را نشان می‌دهد. هر عدد aia_i مقداری بین 11 و NN دارد.

خروجی🔗

یک عدد صحیح که طولانی‌ترین دنباله BB که شرایط فوق را برآورده می‌کند، نشان می‌دهد.

محدودیت‌ها🔗

1N50001 \le N \le 5000 1AiN1 \le A_i \le N

مثال🔗

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

8
1 5 7 8 6 3 4 2
Plain text

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

4
Plain text

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

8
1 4 2 8 5 7 1 4
Plain text

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

5
Plain text

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

2
1 2
Plain text

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

2
Plain text

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

6
2 2 3 3 5 5
Plain text

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

6
Plain text

جمعه


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

برای هر عدد طبیعی nn مقدار f(n)f(n) را برابر مجموع ارقام آن تعریف میکنیم. برای مثال f(114514)=1+1+4+5+1+4=16f(114514) = 1 + 1 + 4 + 5 + 1 + 4 = 16 . برای هر nn و kk مقدار g(n,k)g(n , k) را برابر با f(f(...(f(n)...))f(f(...(f(n)...)) تعریف می کنیم که در آن تابع ff دقیقا kk بار صدا زده شده است.

عمو که بعد از دیدن این تعاریف به آن ها علاقه مند شده ، تصمیم می گیرد یه بازی هیجان انگیز به اسم جمعه انجام بدهد. او می خواهد TT دور جمعه بازی کند. در هر دور بازی سه عدد N,m,kN , m , k انتخاب می کند و باید تعداد nn های طبیعی را پیدا کند که nNn \leq N و g(n,k)=mg(n , k) = m باشد. عمو که فهمیده بود تنهایی از پس این بازی بر نمیاد از شما کمک می خواهد تا جواب هر دور از بازی را به پیمانه 109+710^9 + 7 خروجی دهید.

ورودی🔗

در خط اول عدد TT ورودی داده می شود که نشانگر تعداد پرسش هاست.

در هر یک از TT خط بعدی به شما سه عدد طبیعی N,k,mN,k,m به ترتیب ورودی داده می شوند.

خروجی🔗

به ازای هر پرسش جواب آن را به پیمانه 109+710^9 + 7 خروجی دهید.

محدودیت ها🔗

1T5 1 \leq T \leq 5 1N101000 1 \leq N \leq 10^{1000} 1k,m109 1 \leq k , m \leq 10^9

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

2
114 1 5
514 2 10
Plain text

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

8
10
Plain text

در دور اول، مقدار nn می تواند برابر با 5 ، 14 ، 23 ، 32 ، 41 ، 50 ، 104 و 113 باشد تا g(n,1)=5g(n,1) = 5 برقرار باشد.

مترسک


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

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

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

به دلیل جنس متفاوت بخش های مختلف زمین هزینه کاشت مترسک در خانه واقع در تقاطع سطر ii و ستون jj برابر عدد ai,ja_{i,j} است. عمو که حتی پس از بازنشستگی باز به دنبال پول بیشتر است، میخواهد با کمترین هزینه کاری کند که کلاغ ها به هیچ بخشی از هیچ کدام مزرعه‌ش حمله نکنند. برای همین از شما میخواد که بگویید کمترین هزینه برای این کار چه قدر است.

ورودی🔗

ابتدا تعداد مزرعه های عمو داده می‌شود.

سپس به ازای هر مزرعه، خط اول ورودی شامل عدد فرد nn است که ابعاد مزرعه را مشخص می‌کند.

در nn خط بعدی در هر خط nn عدد داده میشود که عدد jjم در خط iiم همان ai,ja_{i,j} است.

خروجی🔗

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

محدودیت‌ها🔗

1n4991 \leq n \leq 499 1ai,j1091 \leq a_{i,j} \leq 10^9 1n251051 \leq \sum n^2 \leq 5*10^5

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

2
3
1 1 1
1 1 1
1 1 1
5
8 5 2 8 3
5 6 9 7 3
7 8 9 1 4
8 9 4 5 5
2 8 6 9 3
Plain text

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

1
5
Plain text

حالت بهینه به ازای هر مزرعه در شکل زیر آمده است.

Minions and the Moon

نقاشی بکش، نقاشی بکش، عمو


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

عمو پس از بازنشستگی درکنار مزرعه‌داری به سراغ نقاشی رفت. او یک کاغذ که به مربع های واحد تقسیم شده بود را برداشت. سپس nn مربع از آن را انتخاب کرد. iiم مربع دارای مختصات (xi,yi)(x_i, y_i) بود. سپس هر کدام از آن‌ها را به یکی از دو رنگ آبی و قرمز رنگ کرد به طوری که حتما در هر ستون حداکثر یک قرمز و در هر سطر حداکثر یک آبی باشد.

برای مثال شکل زیر یک رنگ آمیزی ممکن عمو است: رنگ آمیزی معتبر

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

ورودی🔗

در خط اول ورودی شامل عدد nn یا همان تعداد مربع‌های انتخاب شده داده می‌شود. در nn خط بعدی در هر خط دو عدد داده می‌شود. عدد اول شماره ستون و عدد دوم شماره سطر است.

خروجی🔗

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

محدودیت‌ها🔗

1n21051 \leq n \leq 2*10^5 109xi,yi109-10^9 \leq x_i, y_i \leq 10^9

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

7
-2 2
1 0
-2 0
1 3
2 2
0 0
-1 -1
Plain text

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

14
Plain text

این ورودی همان تصویر داخل متن سوال است.

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

6
1 1
1 3
5 1
5 3
2 1
2 3
Plain text

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

0
Plain text

ماتریس لاکچری


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

عمو یک ماتریس 2×n2 \times n از اعداد طبیعی MM دارد. همچنین او تضمین می‌کند که اعداد در هر سطر ماتریس MM از یکدیگر متمایز هستند.

برای سطر iiام از MM (i=1,2i = 1, 2sis_i را برابر بیشترین مجموع اعضا یک زیر دنباله صعودی از اعداد سطر iiم تعریف میکنیم. به عنوان مثال، اگر MM به صورت زیر باشد: [123456623541] \begin{bmatrix} 1 & 2 & 3 & 4 & 5 & 6 \\ 6 & 2 & 3 & 5 & 4 & 1 \\ \end{bmatrix} آنگاه s1=1+2+3+4+5+6s_1 = 1 + 2 + 3 + 4 + 5 + 6 و s2=2+3+5s_2 = 2 + 3 + 5 خواهد بود. به ازای هر ماتریس MM مجموع s1+s2s_1 + s_2 به عنوان قیمت آن درنظر گرفته می‌شود. پس قیمت ماتریس بالا 3131 است.

حال عمو که بسیار تجملاتی است، دوست دارد که ماتریسش بیشترین قیمت را داشته باشد. برای همین او میخواد ترتیب ستون های ماتریسش را به نحوی عوض کند که قیمت ماتریسش بیشینه مقدار ممکن شود.

برای مثال، اگر ستون‌های ماتریس مثال قبل M=[c1,c2,c3,c4,c5,c6] M = [ c_1, c_2, c_3, c_4, c_5, c_6 ] به M=[c2,c3,c4,c5,c6,c1] M = [c_2, c_3, c_4, c_5, c_6, c_1] تغییر کند، ماتریس جدید به صورت زیر خواهد بود: [234561235416] \begin{bmatrix} 2 & 3 & 4 & 5 & 6 & 1 \\ 2 & 3 & 5 & 4 & 1 & 6 \\ \end{bmatrix} و قیمت آن برابر 3636 خواهد بود.

یک برنامه بنویسید که به عمو بیشینه قیمت ماتریس را در بین تمام جایگشت‌های ممکن ستون‌های ماتریس MM محاسبه کند.

ورودی🔗

  • در خط اول ورودی شامل یک عدد طبیعی nn است که برابر تعداد ستون‌های ماتریس MM است می‌آید.
  • دو خط بعدی هرکدام شامل nn عدد صحیح هستند که عناصر سطر اول و دوم ماتریس MM را تشکیل می‌دهند. اعداد داده‌شده در بازه [1,50000][1, 50000] قرار دارند و در هر سطر اعداد متمایز هستند.

خروجی🔗

یک خط که بیشینه قیمت در بین تمامی جایگشت‌های ممکن ستون‌های MM چاپ می‌کند.

محدودیت‌ها🔗

1n1041 \leq n \leq 10^4

مثال🔗

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

6
1 2 3 4 5 6
6 2 3 5 4 1
Plain text

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

36
Plain text

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

5
50 40 3 2 1
1 2 3 100 200
Plain text

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

396
Plain text