(1)区间长度等于极差—>该区间排完序后为连续一段数字
(2)枚举满足(1)条件的区间长度,每一个固定长度对应方案数的计算就是高中数学那一套。。
int n, mod;
ll ans = 0, fac[MAXN];
signed main()
{
cin>>n>>mod;
fac[1] = 1;
for(int i = 2; i <= n; i++) fac[i] = fac[i - 1] * i % mod;
for(int i = 1; i <= n; i++) ans = (ans + (n - i + 1) * fac[i] % mod * fac[n - i + 1] % mod) % mod;
printf("%lld\n", ans % mod);
return 0;
}