앞뒤가 맞는 수열
시간 제한2초메모리 제한128 MB
배열 앞에서 자르는 개수를 골라 남은 수열이 앞뒤 k개가 같은 최대 k를 구합니다. 이때 k값과 가능한 절단 방법의 개수를 출력합니다. 조건을 만족하는 절단이 없으면 -1을 출력합니다.
문제
수열 이 다음 성질을 가지면 그 수열을 k-앞뒤수열이라고 한다.
어떤 수열이 k-앞뒤수열일 때, k의 최댓값 를 그 수열의 앞뒤계수라고 한다.
수열의 앞뒤를 맞추기 위해 수열의 연속된 앞부분을 잘라낼 수 있다.
예를 들어 에서 를 제거하면 이 된다.
주어진 수열 의 앞부분을 얼마나 잘라야 앞뒤계수를 최대로 만들 수 있을까? 단, 그러한 방법은 2가지 이상일 수 있다. 그리고 자르는 방법에는 "아무것도 자르지 않는 것"도 포함한다.
입력
첫 번째 줄에 이 주어진다. ()
두 번째 줄에 개의 정수 이 공백으로 구분되어 주어진다. ()
출력
앞부분을 잘라서 앞뒤수열로 만들 수 있다면, 그렇게 자른 후 수열의 앞뒤계수 최댓값과 그렇게 자르는 방법의 수를 공백으로 구분하여 출력한다. 어떻게 잘라도 앞뒤계수가 존재하지 않으면 -1을 출력한다.