Tổng con liên tiếp tối ưu
Xem dạng PDF
SUBMIT SOLUTION
ID:
tcpp25_ai_optimal_sa_sum
Điểm:
1,00 (OI)
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Nguồn bài:
Dạng bài
Cho một mảng ~A~ gồm ~n~ số nguyên và một số nguyên ~k~. Bạn cần tìm tổng con liên tiếp có tổng lớn nhất sao cho:
- Độ dài của dãy con phải chính xác bằng ~k~.
- Tổng của dãy con phải chia hết cho ~k~.
Nếu không tồn tại dãy con nào thỏa mãn điều kiện, in ra -1.
Note: Giả sử Input chỉ có một Testcase duy nhất.
Input Specification
- Dòng đầu tiên chứa hai số nguyên ~n~ và ~k~ ~(1 \le k \le n \le 10^5)~.
- Dòng thứ hai chứa ~n~ số nguyên ~A_1, A_2, \dots, A_n~ ~(-10^9 \le A_i \le 10^9)~.
Output Specification
- In ra một số nguyên duy nhất: tổng con liên tiếp tối ưu thỏa mãn điều kiện, hoặc
-1nếu không tồn tại.
Constrains
- ~1 \le k \le n \le 10^5~.
- ~-10^9 \le A_i \le 10^9~.
Sample Cases
Input #1:
5 3
1 2 3 4 5
Output #1:
9
Explanation #1:
Dãy con ~[2, 3, 4]~ có tổng ~= 9~, độ dài ~= 3~, và ~9~ chia hết cho ~3~. Đây là dãy con tối ưu.
Input #2:
4 2
-1 -2 -3 -4
Output #2:
-1
Explanation #2:
Không có dãy con nào có độ dài ~2~ và tổng chia hết cho ~2~.
Input #3:
6 3
1 1 1 1 1 1
Output #3:
3
Explanation #3:
Dãy con ~[1, 1, 1]~ có tổng ~= 3~, độ dài ~= 3~, và ~3~ chia hết cho ~3~.
Bình luận