شهر اعداد: انتخاب خود


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

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

از این رو مردم شهر دست‌به‌دست هم می‌دهند و یک صف بلند درست می‌کنند و حال هر kk نفر متوالی در صف وظیفه‌ای بر عهده ‌می‌گیرند. به طور دقیق‌تر اگر شهر را nn نفر تشکیل دهند، nk+1n-k+1 وظیفه خواهیم داشت که وظیفه شماره ii بر عهده افراد ii، i+1i+1، \dots تا i+k1i+k-1 خواهد بود.

همچنین وظیفه ii یک عدد tit_i دارد و تنها افرادی می‌توانند آن را به درستی انجام دهند که xorxor عدد آن‌ها برابر tit_i شوند. یا به طور دقیق‌تر اگر دنباله اعداد شهر را aa بگیریم، آنها از عهده وظیفه‌ با ii بر‌ می‌آیند اگر:

aiai+1ai+k1=ti a_i \oplus a_{i+1} \oplus \dots \oplus a_{i+k-1} = t_i

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

ورودی🔗

در سطر اول به ترتیب سه عدد nn تعداد شهروندان و kk تعداد همکاران هر وظیفه و MM بیشینه مجاز برای شهروندان می‌آید. (توجه کنید شهر اعداد را اعداد صحیح نامنفی می‌سازند.) 1kn50001 \le k \le n \le 5000

سپس در سطر بعد nk+1n-k+1 عدد می‌آید که عدد iiـم نشانگر tit_i است.

0M,ti50000 \le M, t_i \le 5000

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

زیرمسئله ‌ محدودیت‌ها امتیاز
۱ 1k31 \le k \le 3 و 1kn1001\le k \le n \le 100 و 0M,ti1000 \le M, t_i \le 100 ۲۰
۲ 1kn2001 \le k \le n \le 200 و 0M,ti1000 \le M, t_i \le 100 ۵۰
۳ بدون محدودیت اضافه ۳۰

خروجی🔗

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

مثال🔗

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

4 2 0
0 1 1
Plain text

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

0
Plain text

از آن‌جا که MM برابر ۰ است پس همه اعضای دنباله باید دقیقا۰ باشند و این در تضاد با وظیفه دوم است که در آن‌ها گفته شده xorxor عضو دوم و سوم باید ۱ باشد.

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

3 3 2
1
Plain text

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

7
Plain text
توضیح نمونه ۲

دنباله‌های مطلوب:

  • 0,0,10, 0, 1
  • 0,1,00, 1, 0
  • 1,0,01, 0, 0
  • 1,1,11, 1, 1
  • 1,2,21, 2, 2
  • 2,1,22, 1, 2
  • 2,2,12, 2, 1

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

25 23 89
22 37 41
Plain text

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

809594952
Plain text