You are on page 1of 1

Bài 3.

SELECT Chọn đoạn


Bạn tham gia vào một cuộc thi và đã phải đấu n trận, mỗi trận đấu nếu thắng bạn nhận được 1
điểm, ngược lại nếu thua bạn sẽ mất đi -1 điểm. Tuy nhiên, để đối mặt với sự dò hỏi của huấn
luyện viên, bạn quyết định bịa ra rằng chỉ có một vài trận đấu là bạn thật sự nghiêm túc thi đấu.
Cụ thể, bạn sẽ chọn ra không quá k đoạn [l1, r1], [l2, r2],….,[lx, rx] (với 0 ≤ x ≤ k) sao cho 1 ≤ l1 ≤
r1 ≤ l2 ≤ r2 < … < lx ≤ rx ≤ n và nói rằng bạn chỉ nghiêm túc trong những trận đấu có chỉ số
thuộc một trong các đoạn trên. Mức độ hài lòng của huấn luyện viên phụ thuộc vào số điểm bạn
nhận được trong các trận đấu mà bạn coi là nghiêm túc. Hãy tìm cách chọn ra tối đa k đoạn sao
cho tổng số điểm của bạn là lớn nhất.
Dữ liệu:
- Dòng đầu tiên chứa hai số nguyên n, k (1 ≤ k ≤ n ≤ 2.105), tương ứng là số trận đấu và số
lượng đoạn tối đa bạn sẽ chọn.
- Dòng thứ hai chúa một xâu kí tự gồm n kí tự, kí tự thứ i tương ứng là trạng thái thắng hay
thua của bạn ở ván đấu thứ i, là “W”nếu bạn thắng, và “L” nếu bạn thua.
Kết quả:
- Ghi kết quả trên một dòng, là tổng số điểm lớn nhất bạn chọn được.
Ví dụ:
input Output
4 1 2
WLWW

Subtask 1 (15 điểm): k = 1;


Subtask 2 (15 điểm): k = 2;
Subtask 3 (20 điểm): n ≤ 100;
Subtask 4 (20 điểm): n ≤ 500;
Subtask 5 (10 điểm): n ≤ 2000;
Subtask 6 (10 điểm): n ≤ 104;
Subtask 7 (10 điểm): không có ràng buộc gì thêm.

You might also like