![]()
1 #include<bits/stdc++.h>
2 #define int long long
3 using namespace std;
4 const int N = 8e3 + 10;
5 const int mod = 998244353;
6 int a[N] , fac[N] , dp[N];
7 void init()
8 {
9 fac[0] = 1;
10 for(int i = 1 ; i <= N - 10 ; i ++) fac[i] = fac[i - 1] * i % mod;
11 }
12 signed main()
13 {
14 ios::sync_with_stdio(false);
15 init();
16 int n , m = 0;
17 cin >> n;
18 for(int i = 1 ; i <= n ; i ++)
19 {
20 int x;
21 cin >> x;
22 a[x] ++ ;
23 }
24 dp[0] = 1;
25 for(int i = 1 ; i <= n ; i ++)
26 for(int j = i ; j >= 1 ; j --)
27 dp[j] += dp[j - 1] * a[i] , dp[j] %= mod;
28 int ans = 0;
29 for(int i = 0 ; i <= n ; i ++)
30 {
31 if(i & 1) ans -= dp[i] * fac[n - i] ;
32 else ans += dp[i] * fac[n - i];
33 ans = (ans + mod) % mod;
34 }
35 cout << ans << '\n';
36 return 0;
37 }