المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی تابستان:دوره ی ۳۳:عملی نهایی سوم:سوال ۲

مجاور خوب (Good Adjacent)

امتیاز یک دنباله برابر تعداد جفت خانه‌های مجاوری است که مجموع آنها برابر $k$ می‌شود. به عنوان مثال اگر $k = 3$ باشد، امتیاز دنباله $\langle 1, 2, 3, 0, 2 \rangle$ برابر $2$ است.

به شما عدد صحیح نامنفی $k$ و یک دنباله $n$ تایی از اعداد داده می‌شود. شما باید تعداد جایگشت‌های از این دنباله که امتیازشان برابر $i$ می‌شود را به ازای هر $i$ از $0$ تا $n - 1$ بدست آورید. چون اعداد جواب ممکن است بزرگ شود کافی است که باقی‌مانده تقسیم هر عدد را بر $998244353$ چاپ کنید.

توجه کنید که اعداد مساوی قابل تمایز هستند.

ورودی

در خط اول دو عدد صحیح $n$ و $k$ به ترتیب می‌آیند.

در خط دوم $n$ عدد صحیح می‌آیند که نشان‌دهنده دنباله ورودی است.

خروجی

در تنها خط خروجی $n$ عدد چاپ کنید که به ترتیب برابر با تعداد جایگشت‌های دنباله با امتیاز $0, 1, \ldots, n-1$، باقی مانده بر $998244353$ است.

زیرمسئله‌ها

  • زیرمسئله اول (۴ نمره): $n \leq 10$.
  • زیرمسئله دوم (۸ نمره): $n \leq 18$.
  • زیرمسئله سوم (۱۰ نمره): تعداد اعداد متمایز حداکثر دو است. $k$ فرد است.
  • زیرمسئله چهارم (۱۵ نمره): تعداد اعداد متمایز حداکثر سه و $k$ عددی فرد است.
  • زیرمسئله پنجم (۲۱ نمره): $n \leq 300$
  • زیرمسئله ششم (۴۲ نمره): بدون محدودیت اضافی

محدودیت‌ها

  • $1 \leq n \leq 5000$
  • $0 \leq k \leq 10^9$
  • اعداد دنباله نامنفی و کمتر از $10^9$ هستند.

ورودی و خروجی نمونه

ورودی نمونه خروجی نمونه
5 3
1 2 1 2 1
0 24 36 48 12

ابزار صفحه