Educational Backtracking: Biểu thức

View as PDF

Submit solution


Points: 0.50 (partial)
Time limit: 1.0s
Memory limit: 256M
Input: stdin
Output: stdout

Authors:
Problem type
Allowed languages
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho dãy số gồm ~n~ phần tử và số nguyên ~m~. Nhiệm vụ của bạn là đếm số cách điền các dấu ~+~, ~-~ và ~*~ giữa các phần tử ~a_i~ và ~a_{i + 1}~ với ~i < n~ để tạo thành biểu thức có giá trị chia hết cho ~m~.

Input

Dòng đầu tiên chứa số nguyên ~t~ là số bộ test. Các dòng sau là ~t~ bộ test.

Mỗi bộ test bao gồm:

  • Dòng đầu tiên chứa 2 số nguyên dương ~n~ và ~m~ (~2 \leq n \leq 10~, ~m \leq 10^9~).

  • Dòng tiếp theo gồm ~n~ số nguyên là các phần tử của dãy ~a~ (~0 \leq a_i \leq 10^9~).

Output

Với mỗi bộ test, in ra số lượng biểu thức thỏa mãn.

Sample Input 1

1
4 2
5 5 5 9

Sample Output 1

14

Notes


Comments

Please read the guidelines before commenting.



  • -1
    lek176234  commented on July 2, 2024, 9:03 a.m.

    ụ t giới hạn là bao nhiêu thế ạ


    • -1
      lek176234  commented on July 6, 2024, 4:08 a.m.

      test hình như hơi yếu


  • -2
    Quynhthu  commented on May 30, 2024, 3:42 a.m.

    thì là do làm sai


  • -298
    nam80022052  commented on Jan. 3, 2023, 4:06 p.m. edit 2

    This comment is hidden due to too much negative feedback. Show it anyway.