- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
افراد ۱ تا $n$ تیمبندی شدهاند و در یک صف قرار گرفتهاند. به یک شیوه تیم بندی یک دنباله $a_1,a_2,...,a_n$ نسبت میدهیم به این شکل که به ترتیب عناصر دنباله را میسازیم:
- در مرحله $i$ ام اگر فرد با شماره $i$ با فرد شماره $j$ همتیمی بود به شکلی که $i>j$ $a_i$ را برابر $a_j$ قرار میدهیم.
- در غیر این صورت $a_i$ را برابر مینیمم عدد طبیعی مانند $x$ قرار میدهیم که $x$ برابر هیچ کدام از اعداد $a_1,a_2,...,a_{i-1}$ نباشد.
یک دنباله $a_1,a_2,...,a_n$ به شما داده شده است که تضمین میشود تیمبندیای وجود داره که دنبالهاش برابر آن شود. تعداد تیمبندیهایی را بشمارید که دنبالههایشان از لحاظ لکسیکوگرافیکالی کمتر یا برابر دنباله $a$ باشد. چون ممکن است این عدد خیلی بزرگ باشد، باقیمانده آن را به $1\ 000\ 007$ حساب کنید.
ورودی
در خط اول ورودی یک عدد $n$ داده شده است. در خط دوم دنباله $a_1,a_2,...,a_n$ داده شده است. $$1 \leq n \leq 10\ 000$$
خروجی
باقیمانده تعداد تیمبندیهای با شرایط گفته شده بر $1\ 000\ 007$ را در یک خط چاپ کنید.
زیر مسئلهها
زیرمسئله | نمره | محدودیت |
---|---|---|
۱ | ۳۰ | $$n \le 14$$ |
۲ | ۲۰ | $$n \le 100$$ |
۳ | ۲۰ | $$n \le 1\ 000$$ |
۴ | ۳۰ | بدون محدودیت اضافی |
مثال
ورودی نمونه ۱
3
1 2 2
خروجی نمونه ۱
4
دنبالههای معتبر:
- $1 1 1$
- $1 1 2$
- $1 2 1$
- $1 2 2$
- $1 2 3$
ارسال پاسخ برای این سؤال