Đã sống gần hai mươi năm trên đời mà vẫn chưa có người yêu, Trung quyết định lên chùa cầu duyên. Sau khi thực hiện đủ các nghi lễ, Trung được nhận một tấm bùa. Trên tấm bùa ghi một xâu độ dài ~n~ chỉ gồm hai chữ cái ~\texttt{O}~ hoặc ~\texttt{K}~. Với hiểu biết uyên thâm về bủa ngải của mình, Trung biết rằng độ hiệu nghiệm của tấm bùa phụ thuộc vào các cặp chữ cái liên tiếp nhau. Cụ thể:
Cặp chữ ~\texttt{OK}~ có tác dụng, do đó, nếu tấm bùa có ~a~ cặp chữ ~\texttt{OK}~ thì độ hiệu nghiệm của tấm bùa sẽ tăng lên ~a^2~.
Cặp chữ ~\texttt{KO}~ phản tác dụng, do đó, nếu tấm bùa có ~b~ cặp chữ ~\texttt{KO}~ thì độ hiệu nghiệm của tấm bùa sẽ giảm đi ~b^2~.
Nói cách khác, nếu tấm bùa có ~a~ cặp chữ ~\texttt{OK}~ và ~b~ cặp chữ ~\texttt{KO}~ thì độ hiệu nghiệm của tấm bùa sẽ là ~a^2 - b^2~. Ví dụ, nếu tấm bùa ghi xâu ~\texttt{OOOKOO}~ thì ~a = 1~, ~b = 1~, do vậy độ hiệu nghiệm của tấm bùa sẽ là ~1^2 - 1^2 = 0~.
Trung chưa hài lòng lắm về tấm bùa của mình, nên đã xin nhà chùa phát cho một tấm bùa khác. Tuy nhiên, nhà chùa chỉ cho phép Trung thay đổi tấm bùa hiện tại tối đa ~k~ lần, mỗi lần Trung có thể chọn hai chữ cái bất kì trên tấm bùa và đổi chỗ chúng cho nhau. Hãy giúp Trung có được tấm bùa yêu với độ hiệu nghiệm lớn nhất có thể nhé!
Input
Mỗi test gồm nhiều test case. Dòng đầu tiên chứa số lượng test case ~t~ (~1 \leq t \leq 10\,000~). Mô tả của mỗi test case như sau.
Dòng đầu tiên gồm hai số nguyên dương ~n~ và ~k~ (~2 \leq n \leq 10^5~, ~1 \leq k \leq 10~) — độ dài của xâu được ghi trên tấm bùa và số lần biến đổi tối đa.
Dòng thứ hai gồm một xâu ~s~ gồm ~n~ kí tự ~\texttt{O}~ hoặc ~\texttt{K}~, mô tả xâu được ghi trên tấm bùa.
Đảm bảo rằng tổng ~n~ của tất cả các test case không vượt quá ~10^5~.
Output
Với mỗi test case, in ra một số nguyên là độ hiệu nghiệm tối đa tấm bùa có thể đạt được.
Scoring
Subtask | Điểm | Ràng buộc |
---|---|---|
1 | ~250~ | Tổng của ~n~ không vượt quá ~100~, ~k = 1~ |
2 | ~750~ | ~k = 1~ |
3 | ~1250~ | Không có ràng buộc gì thêm |
Tổng | ~2250~ |
Sample Input 1
5
2 1
KO
2 1
OK
7 1
OOOKKKK
7 1
KKOOKKK
10 2
KOOKOKKKOO
Sample Output 1
1
1
5
3
9
Notes
Ở test case thứ nhất, cách biến đổi tối ưu là ~\mathtt{KO}~ ~\to \mathtt{OK}~. Xâu thu được cuối cùng có độ hiệu nghiệm là ~1~.
Ở test case thứ hai, cách biến đổi tối ưu là giữ nguyên xâu ~\mathtt{OK}~, với độ hiệu nghiệm là ~1~.
Ở test case thứ năm, một cách biến đổi tối ưu là ~\mathtt{KO}~~\mathtt{OKOKKKOO} \to \mathtt{OKOKOK}~~\texttt{K}~~\texttt{KO}~~\texttt{O}~ ~\to \mathtt{OKOKOKOKOK}~, thu được xâu cuối cùng có độ hiệu nghiệm là ~9~.
Bình luận
Mình xin đóng góp lời giải cho bài này như sau:
Subtask 1:
Subtask 2:
Subtask 3: