Đoạn con M phần tử có tổng lớn nhất

View as PDF



Problem type
Points: 3 (p) Time limit: 1.0s Memory limit: 100M Input: stdin Output: stdout

Một dãy số B được gọi là dãy con của A nếu các phần tử của B được lấy từ một hoặc một số phần tử liên tiếp nhau trong A.
Cho một dãy số A gồm N phần tử là các số nguyên.

Yêu cầu:

Tìm một dãy con của A gồm M phần tử (M ≤ N) sao cho dãy con này có tổng lớn nhất.

Dữ liệu vào:

Cho trong file văn bản DCMAX.INP có cấu trúc như sau:

  • Dòng 1: Ghi 2 số nguyên N, M (0 < M ≤ N ≤ \(10^6\) ). Hai số ghi cách nhau ít nhất một dấu cách.
  • Dòng 2: Chứa N số nguyên \(A_i\) ( -\(10^6\)\(A_i\)\(10^6\), i = 1, 2, ..., N). Mỗi số ghi cách nhau ít nhất một dấu cách.

Dữ liệu ra:

Ghi ra file văn bản DCMAX.OUT có cấu trúc như sau:

  • Dòng 1: Ghi ra tổng lớn nhất của dãy con tìm được.
  • Dòng 2: Ghi ra các phần tử của dãy con tìm được. Nếu có nhiều dãy con thỏa mãn thì in ra dãy con xuất hiện đầu tiên trong dãy.
Ví dụ
Input
8 3
4 3 5 2 8 7 9 6
Output
24
8 7 9

Comments

There are no comments at the moment.