دوودز


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

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

شایان از زمین‌شناسان معروف قرن 2121 است و در مورد سواحل هاوایی تحقیق می‌کند. او درختی nn راسی و ریشه‌دار که طبق معمول ریشه‌اش راس 11 است را به مشتلی می‌دهد و میگوید نقشه سواحل هاوایی یکی از زیردرخت‌های این درخت است. حال مشتلی، درخت شایان و عدد dd را به شما ورودی می‌دهد و در قبال آن می‌خواهد به ازای هر راس مثل vv، ارزش زیردرخت vv را به دست آورید.

در یک درخت ریشه‌دار، زیردرخت راس vv شامل تمام رئوس مانند uu است که در کوتاه‌ترین مسیر بین ریشه و uu راس vv ظاهر شده باشد.

ورودی🔗

در خط اول دو عدد nn و dd آمده است.

در خط بعدی n1n-1 عدد است که در جایگاه ii ام پدر راس i+1i+1 ام آمده است.

2n3×105 2 \leq n \leq 3\times10^5 1dn 1 \leq d \leq n

خروجی🔗

در یک خط nn عدد چاپ کنید که عدد ii ام ارزش زیردرخت راس ii است.

زیرمسئله‌ها🔗

زیرمسئله نمره محدودیت
۱ ۷ n300n \le 300
۲ ۱۲ n3000n \le 3000
۳ ۱۷ ارتفاع درخت حداکثر ۴۰ است
۴ ۴۳ n105n \le 10^5
۵ ۲۱ بدون محدودیت اضافی

مثال🔗

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

3 2 
1 2
Plain text

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

2 0 0
Plain text

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

11 4
1 1 2 2 3 4 5 8 8 10
Plain text

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

11 7 0 0 0 0 0 0 0 0 0
Plain text

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

11 3
1 1 2 2 3 4 5 8 8 10
Plain text

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

11 8 0 0 3 0 0 2 0 0 0
Plain text

وسواس فکری


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

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

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

او در طول روز سر و کار زیادی با اعداد و آرایه‌ها دارد و به دلیل وسواس‌های ذهنی‌اش همواره سوالات متداولی درباره‌ی این آرایه‌ها برای او پیش می‌آید. به این دلیل که این سوالات وقت و انرژی بسیار زیادی از ارشیا می‌گیرد و او به این دلیل دیگر توانایی و قدرت فکر کردن قبل را ندارد و نمی‌تواند مانند گذشته در کارهای روزمره‌اش قوی عمل کند، از شما خواسته تا با توجه به یکی از این آرایه‌ها که خودش به شما می‌دهد، تعدادی از خواسته‌های او را برآورده کنید؛

خواسته‌های ارشیا ۲ نوع مختلف هستند:

  • نوع اول: یکی از اعداد آرایه را انتخاب می‌کند و از شما می‌خواهد آن را با عدد دیگری که خودش به شما می‌گوید جایگزین کنید.

  • نوع دوم: یک بازه از آرایه را انتخاب می‌کند و از شما می‌پرسد «آیا در این بازه تمام اعداد مختلف زوج بار ظاهر شده‌اند یا خیر؟»

ورودی🔗

در خط اول ورودی دو عدد nn و qq، که به ترتیب برابر طول آرایه و تعداد خواسته‌های ارشیا است داده می‌شود.

در خط بعدی nn عدد که عدد iiام آن برابر با aia_i است به شما داده می‌شود.

در qq خط بعدی، در هر خط ۳ عدد tit_i، xix_i و yiy_i به شما داده می‌شود که به معنای زیر هستند:

اگر ti=1t_i = 1: عدد xix_i ام را تبدیل به yiy_i کنید.

اگر ti=2t_i = 2: آیا در بازه‌ی [xi,yi][x_i, y_i]\: آرایه تمام اعداد زوج بار آمده‌اند؟

1n,q1061 \leq n, q \leq 10^6 1ai1091 \leq a_i \leq 10^9

خروجی🔗

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

زیرمسئله‌ها🔗

زیرمسئله نمره محدودیت
۱ ۷ 1n,q5×1031 \leq n, q \leq 5 \times 10^3
۲ ۲۴ 1ai1001 \leq a_i \leq 100
۳ ۲۷ 1n,q1051 \leq n, q \leq 10^5
۴ ۴۲ بدون محدودیت اضافی

مثال🔗

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

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

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

NO
YES
YES
Plain text
  • در پرسش اول (بازه‌ی [1,4][1, 4] آرایه‌ی کنونی) آرایه برابر با 1,1,2,1,31, 1, 2, 1, 3 است؛ پس جواب برابر "NO" است.

  • در پرسش دوم (بازه‌ی [1,4][1, 4] آرایه‌ی کنونی) آرایه برابر با1,1,2,2,31, 1, 2, 2, 3است؛ پس جواب برابر "YES" است.

  • در پرسش سوم (بازه‌ی [2,5][2, 5] آرایه‌ی کنونی) آرایه برابر با 1,3,2,2,31, 3, 2, 2, 3 است؛ پس جواب برابر "YES" است.

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

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

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

YES
NO
YES
YES
NO
YES
Plain text

دربی


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

چند روز دیگر، مسابقه حساس دربی تهران بین دو تیم استقلال و پرسپولیس برگزار می‌شود. این اولین دربی با حضور تماشاگران پس از شکست دادن ویروس کرونا می‌باشد. به همین دلیل تعداد زیادی تماشاگر به ورزشگاه می‌آیند تا تیم خود را تشویق کنند. مسئولین برگزاری مسابقه nn صندلی را برای تماشاگران درنظر گرفته‌اند و می‌خواهند صندلی‌ها را رنگ کنند.

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

  1. رنگ یکی از صندلی‌ها را به سیاه، آبی یا قرمز تغییر می‌دهند. تضمین می‌شود اگر رنگ صندلی را آبی یا قرمز بکنند، صندلی در مرحله قبل سیاه بوده است.
  2. به چند روش می‌توان همه صندلی‌های سیاه را با دو رنگ آبی و قرمز رنگ کرد به طوری که تنش میان هواداران دقیقا kk باشد.

در روز مسابقه، هواداران پرسپولیس روی صندلی‌های قرمز و هواداران استقلال روی صندلی‌های آبی می‌نشینند. مقدار تنش میان آن‌ها برابر تعداد زوج‌ها i<ji < j است که صندلی iiام آبی و صندلی jjام قرمز باشد. به مسئولین مسابقه پاسخ درخواست‌های نوع دوم را بدهید.

ورودی🔗

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

هر یک از qq خط بعدی به یکی از دو شکل زیر هستند.

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

هر یک از qq خط بعدی به یکی از دو شکل زیر هستند.

درخواست نوع اول: 1 x c مسئولین رنگ صندلی xxام را به رنگ cc درمی‌آورند. قرمز را با RR، آبی را با BB و سیاه را با XX نمایش می‌دهند.

درخواست نوع دوم: 2 k به چند روش می‌توان صندلی‌های سیاه را آبی و قرمز کرد که تنش میان هواداران دقیقا kk باشد.

2n1002 \leq n \leq 100 1q1001 \leq q \leq 100

خروجی🔗

باقی‌مانده تقسیم جواب هر درخواست نوع دوم بر 109+710^9+7 را در خطی جدید چاپ کنید.

زیرمسئله‌ها🔗

زیرمسئله نمره محدودیت
۱ ۷ q50,n10q\le50,\:n\le10
۲ ۹ q50,n30q\le50,\:n\le30
۳ ۴۳ هیچ درخواستی صندلی را سیاه نمی کند.
۴ ۴۱ بدون محدودیت اضافی

مثال🔗

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

3 6
1 1 B
2 2
1 2 B
2 2
1 3 R
2 2
Plain text

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

2
1
1
Plain text

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

3 4
1 1 B
1 2 B
2 2
2 1
Plain text

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

1
0
Plain text

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

6 9
1 3 B
2 4 
1 3 X
2 4
1 5 B
1 1 R
1 2 B
1 6 B
2 3
Plain text

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

5
11
0
Plain text

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

3 7
2 2
1 1 B
2 2
1 1 X
1 1 R
2 3
2 1
Plain text

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

2
2
0
1
Plain text

انگاشته


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

علی بعد از دیدن فیلم انگاشته (Tenet) ایده‌ی سوال زیر به ذهنش رسید ولی توانایی حل آن را نداشت. به وی کمک کنید تا آن را حل کند.

کیانوش ناباورانه به شهر عجیب غریبی به اسم برره می‌رسد. در برره nn روستا وجود دارد که بعضی از آن‌ها با mm جاده دوطرفه به هم متصل شده‌اند، به طوری که از هر روستا می‌توان به بقیه روستاها رفت. جاده‌ی iiام روستای viv_i و uiu_i را به هم وصل می‌کند. برای اینکه کیانوش از جاده iiام عبور کند، نظام دوبرره از او aia_i ریال می‌گیرد و به او کوپن جاده‌ی iiام را می‌دهد. همچنین او می‌تواند هنگام گذرکردن از جاده iiام کوپن همان جاده را به نظام دوبرره پس بدهد و با پرداخت bib_i ریال از آن عبور کند. در روش دوم نظام دوبرره به کیانوش کوپن نمی‌دهد.

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

برای گرفتن اقامت برره، کیانوش باید به تعدادی روستا برود و رضایت اهالی آنجا را کسب کند. کیانوش دنباله x1,x2,...,xk\langle x_1, x_2, ..., x_k \rangle روستاها را دارد و باید آن روستاها را به ترتیب ببیند. او از روستای x1x_1 شروع می‌کند، سپس باید با طی کردن تعدادی جاده به روستای x2x_2 برود، سپس با طی کردن تعدادی جاده دیگر به روستای x3x_3 برود، ... و در نهایت به روستای xkx_k برود. کیانوش به حداقل چقدر پول احتیاج دارد تا بتواند اقامت برره را بگیرد.

ورودی🔗

در خط اول سه عدد nn تعداد روستاها، mm تعداد جاده‌ها و kk طول دنباله‌ی روستاها به ترتیب می‌آیند.

در iiامین خط از mm خط بعدی، چهار عدد viv_i، uiu_i، aia_i و bib_i نمایانگر جاده iiام به ترتیب می‌آیند.

در خط بعدی kk عدد x1,x2,...,xkx_1, x_2, ..., x_k به ترتیب می‌آیند.

تضمین می‌شود گراف شهر برره همبند است.

1n,k1501 \leq n, k \leq 150 n1m(n2)n-1 \leq m \leq \binom{n}{2}

1ui,vin,  uivi1 \le u_i, v_i \le n,~~ u_i \neq v_i

1biai1091 \le b_i \le a_i \le 10^9

خروجی🔗

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

زیرمسئله‌ها🔗

زیرمسئله نمره محدودیت
۱ ۶ ai=bia_i = b_i
۲ ۸ m=n1m = n - 1
۳ ۱۰ k=3k = 3
۴ ۱۵ k=4k = 4
۵ ۳۰ n,k50n, k \leq 50
۶ ۳۱ بدون محدودیت اضافی

مثال🔗

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

4 6 10
1 2 3 1
1 3 4 2
1 4 6 3
2 3 1 1
2 4 3 2
3 4 8 4
1 4 2 3 2 4 1 3 2 4
Plain text

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

24
Plain text

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

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

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

26
Plain text

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

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

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

20
Plain text

فروشگاه


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

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

جایگشت p1,p2,...,pn\langle p_1, p_2, ..., p_n \rangle را در نظر بگیرید.

قدرت عضو iiام را با aia_i نشان می‌دهیم. بزرگترین عدد jj را در نظر بگیرید که j<ij < i و pj>pip_j > p_i باشد. اگر هیچ jj با خواص گفته شده وجود نداشته باشد، آنگاه ai=1a_i = 1 و در غیر این صورت ai=aj+1a_i = a_j + 1 می‌باشد.

همت عضو iiام را با bib_i نشان می‌دهیم. کوچکترین عدد jj را در نظر بگیرید که j>ij > i و pj>pip_j > p_i باشد. اگر هیچ jj با خواص گفته شده وجود نداشته باشد، آنگاه bi=1b_i = 1 و در غیر این صورت bi=bj+1b_i = b_j + 1 می‌باشد.

آرین یک عدد طبیعی kk انتخاب می‌کند و قیمت جایگشت p1,p2,...,pn\langle p_1, p_2, ..., p_n \rangle را برابر i=1n(ai+bi)k\sum_{i=1}^{n} (a_i + b_i)^k قرار می‌دهد. مهرداد که می‌خواهد از هر جایگشت دقیقا یکی بخرد، از شما می‌خواهد به او بگویید به چه مقدار پول احتیاج دارد.

ورودی🔗

در خط اول دو عدد طبیعی nn و kk به ترتیب می‌آیند. 2n50002 \leq n \leq 5000

0k50000 \leq k \leq 5000

خروجی🔗

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

زیرمسئله‌ها🔗

زیرمسئله نمره محدودیت
۱ ۳ k=0k = 0
۲ ۵ n7n \leq 7
۳ ۱۵ k1k \leq 1
۴ ۲۳ k2k \leq 2
۵ ۲۶ n500n \leq 500
۶ ۲۸ بدون محدودیت اضافی

مثال🔗

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

2 1
Plain text

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

10
Plain text

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

5 2
Plain text

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

7928
Plain text

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

5 3
Plain text

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

32376
Plain text

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

124 274
Plain text

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

796626652
Plain text

آقای بین


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

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

«این بازی فقط از تعدادی آجر تشکیل شده است. در ابتدا آجرها را در nn ردیف بچینید و در ردیف iiام aia_i آجر را روی هم قرار دهید. شما در هر دقیقه می‌توانید تعدادی ردیف متوالی که تعداد آجرهای آن‌ها به یک اندازه است را انتخاب کنید و به همه‌ی آن‌ها به تعداد مساوی آجر اضافه کنید یا از آجر‌هایش بکاهید. به عبارتی دیگر می‌توانید یک بازه lrl \leq r و عدد صحیح xx انتخاب کنید به طوری که ai=ala_i = a_l به ازای تمامی lirl \leq i \leq r برقرار باشد، سپس به تمامی اعضای این بازه را با xx جمع کنید.

به طور مثال اگر دنباله a=4,2,2,2,3,2a = \langle 4, 2, 2, 2, 3, 2 \rangleباشد، می‌توانید با انتخاب بازه l=2l = 2 و r=3r = 3 و عدد صحیح x=1x = -1 دنباله را به a=4,1,1,2,3,2a = \langle 4, 1, 1, 2, 3, 2 \rangle تبدیل کنید.

هدف بازی این است که در کمترین زمان ممکن کاری کنید که همه‌ی ردیف‌ها به یک اندازه آجر داشته باشند.»

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

ورودی🔗

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

در خط دوم nn عدد a1,a2,...,ana_1, a_2, ..., a_n \: به ترتیب می‌آیند.

2n7502 \leq n \leq 750 1ain1 \leq a_i \leq n

خروجی🔗

کمترین زمان ممکن برای برابر کردن تعداد آجرهای تمامی ردیف‌ها را چاپ کنید.

زیرمسئله‌ها🔗

زیرمسئله نمره محدودیت
۱ ۹ عدد طبیعی xx وجود دارد که aiai+1a_i \leq a_{i+1} به ازای تمامی i<xi < x و aiai+1a_i \geq a_{i+1} به ازای تمامی ixi\geq x برقرار است.
۲ ۲۰ n100n \leq 100
۳ ۳۲ n300n \leq 300
۴ ۳۹ بدون محدودیت اضافی

مثال🔗

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

5
1 2 3 3 1
Plain text

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

2
Plain text

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

5
1 3 2 1 3
Plain text

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

3
Plain text

فرار بزرگ


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

دان دریایی کاراییب در زندانی قرار دارند که به شکل جدولی n×nn \times nاست. از آنجایی که جک در جوانی المپیاد کامپیوتری بوده کامپیوتر مرکزی زندان را هک کرده و متوجه شده است که اتاق آن ها در خانه (1,1)(1, 1) جدول و در خروجی زندان در خانه (n,n)(n, n) قرار دارد.

هر کدام از خانه‌های جدول یک اتاق است که چهار در دارد که هر کدام روی یکی از ضلع های مربع هستند.

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

حالا قرار است جک به شما مختصات مین ها را یکی یکی بدهد و بعد از هر کوئری شما بیشترین تعداد مسیر ممکن را بگویید!

پیاده‌سازی🔗

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

بنابراین جک نمی‌تواند مختصات مین‌ها را برای شما بفرستد پس از شما می‌خواهد تابعی پیاده سازی کنید که جواب مسئله را بدهد. یعنی در این سوال شما اجازه خواندن از ورودی یا نوشتن در خروجی را ندارید. شما باید توابع زیر را پیاده سازی کنید و جک از آنها استفاده می‌کند. همچنین برنامه شما نباید تابع main داشته باشد.

در صورت هرگونه تلاش برای خواندن از ورودی یا نوشتن در خروجی یا استفاده از تابع exit نمره شما صفر می‌شود.

void init(int n, int q)
C++

شما باید این تابع را پیاده‌سازی کنید. در ابتدای فرایند این تابع تنها یک بار صدا زده می‌شود و مقادیر n,qn, q را به شما می‌دهد.

  • n: اندازه طول و عرض زندان
  • q: bomb تعداد بار‌های فراخوانی تابع
int bomb(int x, int y)
C++

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

2n30002 \leq n \leq 3000

1qmin(2×105,n22)1 \leq q \leq min(2\times10^5, n^2-2)

1x,yn1 \leq x,y \leq n

تضمین می‌شود که x,yx,y ها غیر‌تکراری هستند. همچنین خانه شروع و پایان هیچوقت مین‌گذاری نمی‌شوند.

ارزیاب نمونه🔗

دو تابع خواسته شده را در فایل TheGreatEscape.cpp پیاده‌سازی کنید. لازم نیست جواب شما تنها شامل این دو تابع باشد بلکه بسته به نیاز خود می‌توانید توابع دیگر نیز تعریف کنید. ولی برنامه شما نباید تابع main داشته باشد.

برای کامپایل کردن برنامه باید compile_cpp.sh را اجرا کنید.

حاصل کامپایل فایل اجرایی TheGreatEscape خواهد بود که همان ارزیاب نمونه است.

سپس فایل اجرایی TheGreatEscape را که توسط compile_cpp.sh تولید شده است،‌ اجرا کنید.

ارزیاب نمونه در خط اول اعداد n,qn,q را به ترتیب می‌خواند.

سپس qq خط دیگر می‌خواند که در هر کدام ابتدا عدد xx و سپس yy آمده است. هر خط نشان دهنده یک کوئری انفجار مین است.

زیرمسئله‌ها🔗

زیرمسئله نمره محدودیت
۱ ۲ n4n \le 4
۲ ۵ n10n \le 10
۳ ۱۳ n100n \le 100
۴ ۳۱ اولین کوئری x=1,y=2x=1,y=2 است
۵ ۷ ناحیه مین‌گذاری شده همبند است
۶ ۱۸ ناحیه مین‌گذاری شده حداکثر 1010 مولفه همبندی دارد.
۷ ۲۴ بدون محدودیت اضافی

مثال🔗

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

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

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

2211100
Plain text

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

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

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

222222
Plain text

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

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

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

222222222222221110
Plain text

گل


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

مالک بعد از تصاحب ثروت ریزآبادی‌ها بسیار پولدار شد. سپس برای پسرش میثم باغ بزرگی خرید و در آن nn گل در یک ردیف کاشت. هر گل بویی دارد و iiامین بو از سمت چپ aia_i واحد بو دارد. میثم هر روز هنگام غروب خورشید، به باغش می‌رود و از سمت چپ به سمت راست باغ حرکت می‌کند. اگر به گلی برسد که بوی آن را حس نکند بسیار خشمگین می‌شود و تمام باغ را آتش می‌زند. او بوی گل i>1i > 1 را حس نمی‌کند اگر ai<ai1a_i < a_{i-1} باشد.

مالک که از این موضوع آگاه است nn تا اسپری خریده است تا هر روز صبح به گل‌ها بزند و بوی آن‌ها را فقط در آن روز مقداری بیشتر کند. برای اینکه بوی گل iiام را یک واحد افزایش دهد، باید یک پیس از اسپری iiام به آن بزند. قیمت هر پیس از اسپری iiام bib_i تومان می‌باشد. گاهی اسپری‌ها کیفیت لازم را ندارند و قیمت آن‌ها منفی می‌شود! قابل ذکر است که بوی گل‌ها نمی‌تواند از 10610^6 بیشتر شود.

مالک در qq روز بعدی، وقتی به باغ برود بوی یکی از گل‌ها افزایش می‌یابد. در روز iiام مقدار axia_{x_i} به اندازه yi>0y_i > 0 بیشتر می‌شود. او که بسیار پول‌پرست است، می‌خواهد با کمترین هزینه ممکن، هر روز باغ را باب میل پسرش کند. به او کمک کنید تا این هزینه را در هر روز پیدا کند.

ورودی🔗

در خط اول nn و qq، تعداد گل‌ها و تعداد روزهابه ترتیب می‌آیند.

در خط دوم nn عدد a1,a2,...,ana_1, a_2, ..., a_n به ترتیب می‌آیند.

در خط سوم nn عدد b1,b2,...,bnb_1, b_2, ..., b_n به ترتیب می‌آیند.

در iiامین خط از qq خط بعدی، دو عدد yiy_i و xix_i به ترتیب می‌آیند.

2n,q2000002 \leq n, q \leq 200\,000

106ai,bi106-10^6 \leq a_i, b_i \leq 10^6

1xn1 \leq x \leq n

1y106 1 \leq y \leq 10^6

تضمین می‌شود بوی تمامی گل‌ها هیچوقت از 10610^6 بیشتر نمی‌شود.

خروجی🔗

در qq خط، به ازای هر روز که مالک وارد باغ می‌شود، کمترین هزینه برای اینکه باغ را باب میل میثم کند را چاپ کنید.

زیرمسئله‌ها🔗

زیرمسئله نمره محدودیت
۱ ۷ n,q300n, q \le 300
۲ ۶ n,q5000n, q \leq 5000 و 0bi0 \leq b_i
۳ ۱۹ n,q5000n, q \leq 5000
۴ ۲۲ 0bi0 \leq b_i
۵ ۴۶ بدون محدودیت اضافی

مثال🔗

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

3 3
4 9 6
-1 3 0
3 4
1 6
3 5
Plain text

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

-5
3
3
Plain text

در نمونه اول، روز اول دنباله گل‌ها 4,9,10\langle 4, 9, 10 \rangle می‌باشد. مالک می‌تواند ۵ بار به اولین گل اسپری بزند و دنباله گل‌ها 9,9,10\langle 9, 9, 10 \rangle می‌شود و ۵- تومان خرج کند.

در روز دوم دنبال بوی گل‌ها 10,9,10\langle 10, 9, 10 \rangle می‌باشد. مالک می‌تواند یک بار به دومین گل اسپری بزند و دنباله گل‌ها 10,10,10\langle 10, 10, 10 \rangle می‌شود و ۳ تومان خرج کند.

در روز سوم دنباله گل‌ها 10,9,15\langle 10, 9, 15 \rangle می‌شود و مشابه روز دوم کافی است مالک یک بار به دومین گل اسپری بزند.

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

6 3
3 1 3 2 4 4
1 -5 1 1 1 1
1 3
5, 6
2 999999
Plain text

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

-1000008
-1000014
3999981
Plain text

لوبیای سحرآمیز


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

جک پس از اینکه گاو خود را با لوبیای سحرآمیز پیر دانا عوض کرد، آن را کاشت و سپس خوابید. روز بعد که بیدار شد دید که لوبیا رشد کرده و تبدیل به یک درخت عجیب شده است. این درخت دارای nn لوبیا است که هر لوبیا یک خوشمزگی از 11 تا nn دارد و به ازای هر عدد از 11 تا nn دقیقا یک لوبیا با آن خوشمزگی وجود دارد. به لوبیا با خوشمزگی ii لوبیای ii می‌گوییم.

در این درخت دقیقا n1n-1 چوب وجود دارد که چوب iiم لوبیا uiu_i و viv_i را به هم وصل می‌کند. می‌گوییم دو لوبیا xx و yy به هم مسیر دارند اگر و تنها اگر دنباله‌ای از لوبیا‌ها مانند a1,a2,...,ak\langle a_1, a_2, ..., a_k\rangle وجود داشته باشد که a1=x,ak=ya_1 = x, a_k = y و بین هر دو عضو متوالی از این دنباله چوب وجود داشته باشد.

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

حال مادر جک میخواهد برای ناهار قورمه‌سبزی(!) درست کند و برای این کار می‌خواهد تعدادی از لوبیا‌های درخت را بکَنَد و با آنها غذا درست کند. اگر او بخواهد لوبیای ii را بکَنَد مجبور است تمام چوب‌های متصل به آن را نیز بشکند. طبق دستور پختی که از مادربزرگ جک به مادر جک رسیده نباید در قورمه‌سبزی طعم لوبیا‌ها تفاوت داشته باشند. برای همین او دو عدد ll و rr انتخاب می‌کند که 1lrn1 \leq l \leq r \leq n باشد. سپس تمامی لوبیا‌هایی که خوشمزگی آنها بین ll و rr است (شامل خود ll و rr) را می‌کَنَد و در غذا می‌ریزد.

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

مادر جک بسیار ترسید که سنگ شود ولی از آنجایی که آدم گرسنه از چیزی نمی‌ترسد از درست کردن قورمه‌سبزی منصرف نشد.

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

پیر دانا به شما توصیه می‌کند که به ورودی‌های نمونه توجه کنید تا خواسته‌ی او را بهتر متوجه شوید.

ورودی🔗

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

در n1n-1 خط بعدی ورودی در خط iiم دو سر چوب‌های درخت‌ به ترتیب داده می‌شوند. در خط ii دو عددuiu_i وviv_i داده می‌شود که یعنی چوبی بین لوبیا‌ی uiu_i و viv_i وجود دارد. 1n1061 \leq n \leq 10^6 1ui,vin  ,  uivi1 \le u_i, v_i \le n~~,~~ u_i \neq v_i

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

خروجی🔗

در خروجی تنها یک عدد خروجی دهید که برابر تعداد جفت ll و rr است که با کندن آنها جک و مادرش نفرین نمی‌شوند.

زیرمسئله‌ها🔗

زیرمسئله نمره محدودیت
۱ ۳ 1n3001 \leq n \leq 300
۲ ۵ 1n30001 \leq n \leq 3000
۳ ۱۰ تعداد لوبیاهایی که حداقل 2 شاخه به آنها متصل است، حداکثر 30003000 است.
۴ ۱۹ درخت سحرآمیز به شکل یک مسیر است. (به هر راس حداکثر 2 چوب متصل است).
۵ ۱۶ 1n1051 \leq n \leq 10^5
۶ ۲۱ اگر به ازای هر ii کوتاه ترین مسیر از لوبیای 11 به لوبیای ii را درنظر بگیریم خوشمزگی لوبیا‌ها صعودی است.
۷ ۲۶ بدون محدودیت اضافی

مثال🔗

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

4
1 2
2 4
3 4
Plain text

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

6
Plain text

لوبیاها را با دایره و چوب‌ها را با خط نشان دهیم. اگر لوبیاهای کنده شده را با ضربدر مشخص کنیم، حالت‌های مطلوب نمونه ورودی اول 6 حالت زیر می‌باشد.

و برای مثال حالت زیر نامطلوب است چون لوبیای شماره 11 به لوبیای شماره 33 مسیر ندارد.

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

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

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

10
Plain text

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

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

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

23
Plain text