小 K 与毕业旅行
题目背景
小 K 是一个刚刚高考完的高中生,他正在计划一次毕业旅行,但却被一些细节难住了,快来帮帮他!
题目描述
毕业旅行的计划上一共有 $n$ 个景点,大家会按某种顺序游览这些景点,每一个景点都会被游览恰好一次。
每个景点都有一个坐标 $a_i$,从坐标为 $a$ 的景点坐车前往坐标为 $b$ 的景点会给大家造成 $a \times b$ 的不适感,每次下车后不适感都会清零(即不适感不会累加)。如果某次坐车的不适感超过了某个常数 $w$,就会有人生病。
小 K 想问你,有多少种游览所有景点的顺序,使得全程都不会有人生病,答案对 $998244353$ 取模。
输入输出格式
输入格式
第一行一个正整数 $n$ 和一个非负整数 $w$。
第二行 $n$ 个整数 $a_1, a_2, \cdots, a_n$。
输出格式
输出一行一个整数,表示答案。
输入输出样例
输入样例 #1
3 3
1 2 3
输出样例 #1
2
输入样例 #2
6 5
1 1 4 5 1 4
输出样例 #2
144
输入样例 #3
16 20
9 9 3 2 4 4 8 5 3 -1 -9 -1 -9 -8 -1 0
输出样例 #3
802901549
说明
**样例解释**
对于样例 $1$,有 $2-1-3$ 和 $3-1-2$ 两种合法的顺序。
**数据范围**
本题共有 $10$ 个子任务,你需要通过一个子任务内的所有测试点才能取得这个子任务的分数。
对于所有数据,$0 \le w, |a_i| \le 10^9 $,$1 \le n \le 50000$。
| # | $n$ | $a$ | 分值 |
| ---- | ---- | ---- | ---- |
| 1 | $n \le 10$ | 无特殊限制 | $5$ |
| 2 | $n \le 20$ | 无特殊限制 | $5$ |
| 3 | $n \le 2000 $ | $a_i \in \{ 1,w \}$ | $5$ |
| 4 | $n\le 2000 $ | 不同的 $a_i$ 只有三个,$a_i \ge 0$ | $5$ |
| 5 | $n\le 200 $ | $a_i\ge 0 $ | $10$ |
| 6 | $n\le 2000$ | $a_i\ge 0$ | $15$ |
| 7 | $n\le 50000$ | $a_i \ge 0 $ | $20$ |
| 8 | $n\le 200 $ | 无特殊限制 | $15$ |
| 9 | $n\le 2000 $ | 无特殊限制 | $10$ |
| 10 | $n\le 50000 $ | 无特殊限制 | $10$ |