JOI 2015 - AAQQZ
Xem PDFIOI 2015 được tổ chức tại Kazakhstan. Từ "Kazakh" đôi khi được viết bằng bảng chữ cái là QAZAQ, và QAZAQ là một chuỗi đối xứng. Sau khi biết điều này, JOI-kun bắt đầu yêu thích các chuỗi đối xứng và muốn tạo một chuỗi như vậy từ một chuỗi mà cậu nhìn thấy.
Chuỗi JOI-kun tìm thấy có độ dài \(N\). Mỗi ký tự được biểu diễn bởi một số nguyên từ \(1\) đến \(C\), do đó chuỗi được biểu diễn bằng dãy
Với \(1 \le i \le j \le N\), dãy \((S_i,S_{i+1},\ldots,S_j)\) được gọi là đoạn \((i,j)\). Đoạn \((i,j)\) là đối xứng nếu nó bằng dãy đảo ngược của chính nó, tức là
JOI-kun thực hiện các bước sau để tạo một đoạn đối xứng:
- Chọn một đoạn của \(S\), gọi đoạn đó là \(T\).
- Sắp xếp \(T\) theo thứ tự tăng dần, thu được \(T'\).
- Thay đoạn \(T\) trong \(S\) bằng \(T'\), thu được dãy \(S'\). Cụ thể, nếu chọn đoạn \((i,j)\) và dãy đã sắp xếp là \(T'_i \le T'_{i+1} \le \cdots \le T'_j\), thì
- Tìm một đoạn đối xứng trong \(S'\).
JOI-kun muốn tạo được một đoạn đối xứng dài nhất có thể.
Yêu cầu
Cho dãy \(S\) biểu diễn chuỗi JOI-kun tìm thấy. Hãy tìm độ dài lớn nhất của một đoạn đối xứng có thể tạo được bằng thao tác trên.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên \(N,C\).
- \(N\) dòng tiếp theo, dòng thứ \(i\) chứa số nguyên \(S_i\).
Dữ liệu ra
In ra một số nguyên là độ dài lớn nhất cần tìm.
Ràng buộc
- \(1 \le N \le 3\,000\).
- \(1 \le C \le 3\,000\).
- \(1 \le S_i \le C\) với mọi \(1 \le i \le N\).
Phân nhóm
- Nhóm 1 (10 điểm): \(N \le 50\), \(C \le 50\)
- Nhóm 2 (90 điểm): Không có ràng buộc bổ sung
Ví dụ
Ví dụ 1
Input
12 26
26
17
17
17
1
26
1
17
19
20
1
14
Output
8
Giải thích
Ở ví dụ này,
Sắp xếp đoạn $(4,8)$ theo thứ tự tăng dần thu được
Đoạn $(1,8)$ của $S'$ là đối xứng và có độ dài $8$. Không thể tạo đoạn đối xứng dài hơn.
Ví dụ 2
Input
4 3
1
2
3
2
Output
3
Giải thích
Ta có \(S=(1,2,3,2)\). Có thể chọn đoạn \((1,1)\); sau khi sắp xếp, dãy không đổi. Đoạn \((2,4)\) là đối xứng và có độ dài \(3\), là độ dài lớn nhất.
Kỳ thi:
- JOI 2015 Final Camp - Ngày 3 (5 Tháng 1., 2015)
Bình luận