Mã hoá

Đề bài

Mô tả

Cho dãy N số nguyên dương A1,A2,,AN và một số nguyên dương p.

Định nghĩa điểm của một dãy con là tổng các phần tử của nó lấy dư cho p.

Bạn cần chia dãy A thành đúng 2 phần sao cho:

  • Mỗi phần gồm các phần tử liên tiếp của A;
  • Mỗi phần chứa ít nhất một phần tử;
  • Hai phần không giao nhau và hợp lại tạo thành toàn bộ dãy A.

Nói cách khác, bạn chọn một vị trí cắt i với 1iN1, phần thứ nhất là A1,,Ai và phần thứ hai là Ai+1,,AN.

Hãy tìm giá trị lớn nhất của tổng điểm hai phần.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên Np.
  • Dòng thứ hai chứa N số nguyên A1,A2,,AN.

Dữ liệu ra

Một số nguyên duy nhất là tổng điểm lớn nhất tìm được.

Ràng buộc

  • 2N100000
  • 2p10000
  • 1Ai1000000

Ví dụ

Input Output Giải thích
4 10
3 4 7 2
16 Cắt sau vị trí 2: hai phần là (3,4)(7,2), điểm lần lượt là 7mod10=79mod10=9, tổng bằng 16.
10 12
16 3 24 13 9 8 7 5 12 12
13 Cắt sau vị trí 3: phần đầu có tổng 43 nên điểm là 43mod12=7, phần sau có tổng 66 nên điểm là 66mod12=6, tổng bằng 13.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0