Đoạn con lớn nhất

Xem dạng PDF

Gửi bài giải

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

Problem type
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Tèo có một mảng ~a~ gồm ~n~ số nguyên, và một số nguyên đặc biệt ~m~.

Tèo cần chọn ra một dãy các chỉ số ~b_1, b_2, \ldots, b_k~ ~(1 \leq b_1 < b_2 < \ldots < b_k \leq n)~ sao cho giá trị của ~\sum_{i=1}^k a_{b_i} \mod m~ là lớn nhất có thể. Dãy được chọn có thể rỗng.

Hãy giúp Tèo tìm ra giá trị lớn nhất đó.

Input

  • Dòng đầu tiên chứa hai số nguyên ~n~ và ~m~ ~(1 \leq n \leq 35, 1 \leq m \leq 10^9)~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~ ~(1 \leq a_i \leq 10^9)~.

Output

In ra giá trị lớn nhất có thể của ~\sum_{i=1}^k a_{b_i} \mod m~ mà Tèo có thể đạt được.

Ràng buộc

  • ~25\%~ số test ứng với ~25\%~ số điểm có ~n \leq 20~.
  • ~75\%~ số test còn lại không có ràng buộc gì thêm.

Sample Test

Input 1
5 10
47 16 9 2 56
Output 1
9
Input 2
4 8
9 2 5 4
Output 2
7

Bình luận

Please read the guidelines before commenting.


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