Hoán vị đẹp

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 542M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Xét thuật toán bubble sort (nguồn Wikipedia):

procedure bubbleSort(A : list of sortable items)
    n := length(A)
    repeat
        /* do this at most K times */
        swapped := false
        for i := 1 to n-1 inclusive do                     
            /* if this pair is out of order */
            if A[i-1] > A[i] then
                /* swap them and remember something changed */
                swap(A[i-1], A[i])
                swapped := true
            end if
        end for
    until not swapped
end procedure

Một hoán vị độ dài ~n~ được gọi là hoán vị đẹp nếu dãy con tăng dài nhất (LIS) của hoán vị đó đạt ít nhất ~n-1~.

Đếm số hoán vị có thể trở thành hoán vị đẹp sau ~k~ lần vòng lặp trong của thuật toán bubble sort được thực hiện (theo module đã cho).

Input

Dòng đầu tiên chứa số nguyên dương ~T (T \leq 50)~ là số bộ dữ liệu của test.

Mỗi dòng trong ~T~ dòng tiếp theo chứa ba số nguyên dương ~n, k, mod (n, k \leq 50, mod \leq 10^{9} + 7)~.

Output

In ra ~T~ dòng mỗi dòng gồm một số nguyên duy nhất là kết quả của bộ dữ liệu tương ứng.

Sample Input 1

2
6 3 998244353
8 3 998244353

Sample Output 1

696
22872

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.