AAQQZ
시간 제한2초메모리 제한512 MB
정수 수열에서 연속된 구간 하나를 오름차순으로 정렬한 뒤, 만들 수 있는 가장 긴 회문 구간의 길이를 구합니다.
문제
2015년 국제정보올림피아드는 카자흐스탄에서 열린다. 카자흐스탄의 "카자흐"는 알파벳으로 "QAZAQ"라고 쓰는 경우가 있다. 이 QAZAQ는 회문이다. 이를 알게 된 JOI 군은 회문을 좋아하게 되어, 눈에 띈 문자열로 회문을 만들기로 했다.
JOI 군이 찾은 것은 길이가 N인 문자열이다. 각 문자에는 1부터 C까지의 정수가 정해져 있고, 문자열의 문자를 정수로 바꾼 수열을 이라고 한다. 이 수열의 i번째부터 j번째까지() 꺼낸 수열 를 구간 라고 부른다. 구간 가 뒤집은 수열과 같을 때, 즉 가 성립할 때, 구간 는 회문이다.
JOI 군은 다음 연산으로 회문을 만든다.
- 먼저 S의 구간을 하나 고른다. 고른 구간을 T라고 한다.
- 구간 T를 오름차순으로 정렬한 것을 T'라고 한다.
- 수열 S에서 구간 T를 T'로 바꾼다. 바꾼 결과를 S'라고 한다. 즉 JOI 군이 구간 를 고르면, 를 오름차순으로 정렬해 로 두고, 로 한다.
- 그다음 S'의 구간 중 회문인 것을 찾는다.
JOI 군은 이 연산으로 가능한 한 긴 회문을 만들고 싶어 한다.
JOI 군이 찾은 문자열을 나타내는 수열 S가 주어진다. JOI 군이 만들 수 있는 회문 길이의 최댓값을 구하라.
입력
첫 줄에 정수 N, C가 공백으로 구분되어 주어진다. N은 JOI 군이 찾은 문자열의 길이이고, C는 문자에 정해진 정수의 상한이다.
이어지는 N개의 줄에는 수열 S의 정보가 주어진다. 그중 i번째 줄(1 ≤ i ≤ N)에는 수열 S의 i번째 정수 가 적혀 있다.
출력
JOI 군이 만들 수 있는 회문 길이의 최댓값을 한 줄에 정수로 출력한다.
제한
- .
- .
- ().