Một dãy số gồm \(M\) phần tử \(a_1, a_2, \dots, a_M\) được gọi là dãy số hai phía nếu thoả mãn đồng thời các điều kiện sau:
- \(M\) chẵn, khi đó chia dãy thành hai phần \(\{a_1, a_2, \dots, a_{M/2}\}\) và \(\{a_{M/2+1}, \dots, a_M\}\);
- Các phần tử ở mỗi phần có giá trị bằng nhau, tức là \(a_1 = a_2 = \dots = a_{M/2}\) và \(a_{M/2+1} = \dots = a_M\);
- Giá trị của hai phần phải khác nhau, tức là \(a_1 \ne a_M\).
Ví dụ:
- Là dãy số hai phía: \(\{0,0,0,1,1,1\}\), \(\{1,1,2,2\}\), …
- Không phải dãy hai phía: \(\{1,1,0\}\), \(\{0,0,2,1\}\), \(\{2,2\}\), …
Cho dãy số gồm \(N\) phần tử, mỗi phần tử nhận một trong ba giá trị \(0, 1, 2\) và số nguyên dương \(K\).
Yêu cầu. Hãy thay đổi không quá \(K\) phần tử của dãy số (mỗi phần tử được đổi thành một trong ba giá trị \(0, 1, 2\)) sao cho tồn tại một dãy con liên tiếp là dãy số hai phía có độ dài lớn nhất. In ra độ dài lớn nhất đó.
\InputFile
- Dòng đầu tiên chứa hai số nguyên \(N, K\) \((1 \le K \le N \le 10^5)\).
- Dòng thứ hai chứa \(N\) số, mỗi số nhận một trong ba giá trị \(0\), \(1\) hoặc \(2\) mô tả dãy số ban đầu.
\OutputFile
- Một số nguyên duy nhất là độ dài lớn nhất của dãy số hai phía tìm được sau khi thay đổi không quá \(K\) số của dãy đã cho.
\Examples
\beginexample
\exmp
7 3
2 1 2 0 0 2 1
6
\exmp
4 2
1 1 0 0
4
\endexample
\Note
Ở ví dụ thứ nhất, có thể đổi dãy thành \(2\;2\;2\;0\;0\;0\;1\) (hoặc \(1\;1\;1\;0\;0\;0\;1\)); khi đó \(6\) phần tử đầu tạo thành một dãy số hai phía có độ dài \(6\).
Ở ví dụ thứ hai, dãy đã là dãy hai phía nên không cần thay đổi phần tử nào.
\Scoring
- (\(50\%\)) \(1 \le K \le N \le 10^2\);
- (\(30\%\)) \(1 \le K \le N \le 10^3\);
- (\(20\%\)) Không có ràng buộc thêm.
\endproblem
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.