- محدودیت زمان: ۴ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
مردم شهر دستبهدست هم میدهند و یک صف بلند درست میکنند. هر شهروند یک عدد بین ۰ تا M برای خودش انتخاب کرده است. عدد شهروند iام برابر ai است.
حال از روی اعداد شهروندان اعداد t1,t2,…,tn−k+1 را به صورت زیر میسازیم.
ai⊕ai+1⊕⋯⊕ai+k−1=ti
منظور از ⊕ عملگر xor است.
اکنون دیگر به اعداد شهروندان دسترسی نداریم و فقط دنبالهی t را داریم. از شما میخواهیم تعداد حالتهای ممکن برای اعداد شهروندان را محاسبه کنید.
از آنجایی که ممکن است پاسخ مسئله خیلی بزرگ باشد، باقیماندهی پاسخ مسئله را بر 109+7 چاپ کنید.
ورودی🔗
در سطر اول به ترتیب سه عدد n و k و M آمده است.
1≤k≤n≤5000
سپس در سطر بعد n−k+1 عدد میآید که عدد iـم نشانگر ti است.
0≤M,ti≤5000
زیرمسئلهها🔗
زیرمسئله |
محدودیتها |
امتیاز |
۱ |
1≤k≤3 و 1≤k≤n≤100 و 0≤M,ti≤100 |
۲۰ |
۲ |
1≤k≤n≤200 و 0≤M,ti≤100 |
۵۰ |
۳ |
بدون محدودیت اضافه |
۳۰ |
خروجی🔗
در تنها سطر خروجی یک عدد نامنفی که پاسخ مساله به پیمانه 109+7 است را خروجی دهید.
مثال🔗
ورودی نمونه ۱🔗
خروجی نمونه ۱🔗
با توجه به اینکه M=0 است، پس دنبالهی a تماماً ۰ است و نمیتواند دنبالهی t به صورت گفته شده باشد. بنابراین پاسخ مسئله برابر ۰ میشود.
ورودی نمونه ۲🔗
خروجی نمونه ۲🔗
توضیح نمونه ۲
دنبالههای مطلوب:
- 0,0,1
- 0,1,0
- 1,0,0
- 1,1,1
- 1,2,2
- 2,1,2
- 2,2,1
ورودی نمونه ۳🔗
خروجی نمونه ۳🔗