گردش


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

شنگدباو در «اینور آب»‌ زندگی می‌کند و خانم کوچولو برای مسافرت به «اونور آب» رفته است!‌

اینور آب و اونور آب خیلی شبیه به هم‌اند. یعنی به ازای هر شهر در اینور آب یک شهر اونور آب مشابه آن وجود دارد و شهر ii در اینور آب مشابه شهر ii در اونور آب است! بین شهرها در هر دو طرف آب، جاده‌هایی وجود دارد، به طور دقیق تر nn شهر وجود دارد و n1n-1 جاده به طوریکه جاده‌ها در هر دو به گونه‌ای هستند که دقیقاً یک مسیر بین هر دو شهر وجود دارد.

مسافرت خانم کوچولو qq روز طول می‌کشد. در روز ii ام او از شهر uiu_i در اونور آب به شهر viv_i از طریق مسیر یکتای بین آن‌ها می‌رود. در این مسیر تعدادی شهر می‌بیند و از این شهرها عکس می‌گیرد. شنگدباو برای اینکه کم نیاورد در همان روز خودش از شهر aia_i در اینور آب به شهر bib_i از طریق مسیر یکتای بین آنها می‌رود.

بعد از هر روز شنگدباو عکس‌هایی که خانم کوچولو در آن روز گرفته را نگاه می‌کند و اگر شهری در این عکس‌ها مشابه شهری بود که خودش در آن روز دیده است می‌گوید:«مام ازینا داریم!»

سوال اینجاست که در آخر هر روز شنگدباو چند بار جمله‌ی «مام ازینا داریم!» را می‌گوید. با گرفتن nn ،‌ نقشه‌ی اینور آب و اونور آب،‌ به ازای هر روز تعداد دفعات گفتن این جمله‌ها را خروجی دهید.

ورودی🔗

در اولین سطر ابتدا nn و سپس qq آمده است. که nn تعداد شهرهای اینور آب و اونور آب است و qq برابر تعداد روزهای گردش است.

در n1n-1 سطر بعدی دو عدد u,vu,v آمده است که به معنای وجود جاده ای بین دو شهر uu و vv در اینور آب است. پس از آن نیز مشابهاً جاده‌های اونور آب در n1n-1 سطر آمده است.

در qq سطر بعدی چهار عدد آمده است که به ترتیب ai,bi,ui,via_i , b_i , u_i , v_i است.

1n,q300 0001 \le n , q \le 300\ 000 1ai,bi,ui,vin1 \le a_i , b_i , u_i , v_i \le n

خروجی🔗

باید qq سطر خروجی دهید که سطر iiام یک عدد به معنای تعداد دفعاتی است که شنگدباو در روز iiام می‌گوید:«مام ازینا داریم!»

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

زیرمسئله نمره محدودیت
۱ ۱۰ n,q1 000n , q \le 1\ 000
۲ ۴۰ تضمین می‌شود به هر شهری در اینور آب و اونور آب حداکثر دو تا جاده متصل است.
۳ ۵۰ بدون محدودیت اضافی

مثال🔗

ورودی نمونه🔗

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

خروجی نمونه🔗

0
1
1
2
3
Plain text

علی آقا؟!


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

شنگدباو (shengdebao) معلم یک مهد کودک شده است!‌ هر کدام از بچه‌های این مهد قدرتی دارد،‌ به طور دقیق‌تر قدرت کودک iiام برابر aia_i است.

معضلی که در بین بچه‌ها الان وجود دارد این است که می‌خواهند دو تیم تشکیل بدهند و با هم به بازی «کتک کاری»‌ مشغول شوند! ممکن است تعدادی از بچه‌ها در این بازی شرکت نکنند اما یک نکته که خیلی مورد توجه است این است که اگر قرار باشد تعدادی از بچه ها در تیم اول و تعدادی در تیم دوم باشند جمع قدرت بچه های تیم اول و تیم دوم با هم به پیمانه ی mm برابر باشند.

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

ورودی🔗

در اولین سطر ابتدا nn و سپس mm آمده است. که nn تعداد بچه ها است.

در سطر بعدی nn عدد داده شده است که با فاصله جدا شده است. iiامین عدد aia_i است.

1n1 000 0001 \le n \le 1\ 000\ 000 1m1091 \le m \le 10 ^ 9 0ai<m0 \le a_i < m

خروجی🔗

اگر روشی برای انجام این کار نبود خروجی دهید: laelahaellallah

در غیر اینصورت ابتدا خروجی دهید alhamdolellah و در سطر بعدی nn عدد خروجی دهید که هر کدام برابر 00 یا 11 یا 22 است.

اگر 00 بود یعنی کودک در هیج تیمی نیامده است و اگر 11 بود یعنی در تیم اول و اگر 22 بود یعنی در تیم دوم آمده است.

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

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

زیرمسئله نمره محدودیت
۱ ۱۰ m1 000m \le 1\ 000
۲ ۶ n16n \le 16
۳ ۹ n20n \le 20
۴ ۳۵ m1 000 000m \le 1\ 000\ 000
۵ ۴۰ بدون محدودیت اضافی

مثال🔗

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

4 1000 
1 4 3 2
Plain text

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

alhamdolellah
1 0 2 1
Plain text

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

4 5 
0 1 2 3
Plain text

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

alhamdolellah
2 0 1 1
Plain text

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

3 10000 
1 10 100 
Plain text

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

laelahaellallah
Plain text

ال‌سی‌پی


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

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

تعداد nn رشته داده شده است، رشته‌ی iiام sis_i می‌باشد. به ازای هر رشته لیستی از اعداد موجود است، لیست متناظر با رشته‌ی iiام شامل si+1|s_i| + 1 عدد است که عدد jjام آن (با شروع از صفر)‌ مقدار ai,ja_{i,j} دارد. (1in1 \le i \le n ،0jsi0 \le j \le|s_i|)

هزینه‌ی رفتن از رشته‌ی sis_i به sjs_j برابر است با aj,lcp(si,sj)a_{j , lcp(s_i , s_j)} (منظور از lcp(s,p)lcp(s , p) طول بزرگترین پیشوند مشترک دو رشته‌ی ss و pp است)

فرض کنید روی رشته‌ی sAs_A قرار داریم و می‌خواهیم به رشته‌ی sBs_B برسیم. کمینه هزینه برای انجام این‌ کار را باید خروجی دهید.»

شنگدباو سوال را حل کرده است! آیا شما هم می‌توانید آن‌ را حل کنید؟

ورودی🔗

در سطر اول ورودی عدد nn داده شده است. سپس در 2×n2\times n سطر بعدی ابتدا رشته‌ی ناتهی ii ام آمده است و سپس لیست متناظر با رشته‌ی مورد نظر آمده‌ است. در سطر آخر نیز ۲ عدد آمده است که اولی AA و دومی BB است.

1n500 0001 \le n \le 500\ 000 0ai,j1090 \le a_{i,j} \le 10 ^ 9 si500 000\sum |s_i| \le 500\ 000 ABA \ne B

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

خروجی🔗

در تنها سطر خروجی کمترین هزینه برای رفتن از sAs_A به sBs_B را خروجی دهید.

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

زیرمسئله نمره محدودیت
۱ ۲۰ n5 000n \le 5\ 000
۲ ۲۰ به ازای هر 0j<abs(si)0 \le j < abs(s_i) داریم: ai,j+1ai,j=1a_{i , j+1} - a_{i , j} = 1
۳ ۲۰ رشته‌ها فقط از حروف aa و bb تشکیل شده اند.
۴ ۴۰ بدون محدودیت اضافی

مثال🔗

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

3
a
0 1
b
0 1
a
0 1
1 3
Plain text

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

0
Plain text

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

3
abcd
0 1 2 3 4
abc
0 1 2 3
abcde
0 1 2 10 1 2
2 3
Plain text

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

4
Plain text

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

4
shengdebao
10 11 12 13 14 15 16 17 18 19 20
bao
4 3 2 7
barricade
1 13 12 11 10 9 8 7 6 5
baran
7 14 3 14 7 6
1 4
Plain text

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

6
Plain text