题库练习 Partial Sorting
← 上一题 下一题 →

A15647 | Partial Sorting

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Consider a permutation $^\dagger$ $p$ of length $3n$ . Each time you can do one of the following operations:

- Sort the first $2n$ elements in increasing order.
- Sort the last $2n$ elements in increasing order.

We can show that every permutation can be made sorted in increasing order using only these operations. Let's call $f(p)$ the minimum number of these operations needed to make the permutation $p$ sorted in increasing order.

Given $n$ , find the sum of $f(p)$ over all $(3n)!$ permutations $p$ of size $3n$ .

Since the answer could be very large, output it modulo a prime $M$ .

$^\dagger$ A permutation of length $n$ is an array consisting of $n$ distinct integers from $1$ to $n$ in arbitrary order. For example, $[2,3,1,5,4]$ is a permutation, but $[1,2,2]$ is not a permutation ( $2$ appears twice in the array), and $[1,3,4]$ is also not a permutation ( $n=3$ but there is $4$ in the array).

输入格式

The only line of input contains two numbers $n$ and $M$ ( $1 \leq n \leq 10^6$ , $10^8 \leq M \leq 10^9$ ). It is guaranteed that $M$ is a prime number.

输出格式

Output the answer modulo $M$ .

输入输出样例

输入 #1
1 100009067
输出 #1
9
输入 #2
2 100000357
输出 #2
1689
输入 #3
69 999900997
输出 #3
193862705
C++ 编辑器
输入
输出