Empodia 2의 또 다른 문제
시간 제한5초메모리 제한1024 MB
길이 n인 순열의 앞 k개 값이 주어졌을 때 나머지 값을 채워 framed interval의 개수를 최대로 만들고, 그 개수와 최적의 순열을 출력합니다.
문제
길이 의 순열 에 대해, 연속 부분 수열 ()이 을 만족하면 이를 프레임 구간(framed interval)이라고 부른다. 예를 들어 , , , 는 프레임 구간이다. 와 은 프레임 구간이 아니다.
구사과는 길이 의 순열을 잡고, 이 프레임 구간을 이루는 순서쌍 ()의 개수를 세고 있었다.
하지만 서울대학교 화학부 종신교수 윤창기가 순열을 불태워버렸다. 불태운 뒤에는 순열의 앞 개 수만 남았다.
구사과를 도와 주자. 순열의 맨 앞 개 원소가 주어졌을 때, 나머지 수를 최적으로 채워 프레임 구간의 개수를 최대화하고, 그러한 순열 중 하나를 아무거나 출력해야 한다.
입력
첫 번째 줄에 두 정수 가 주어진다. (, )
두 번째 줄에 개의 정수 가 주어진다. () 이면 이 줄은 빈 줄로 주어진다.
모든 는 서로 다르다.
출력
첫 번째 줄에 가능한 프레임 구간의 최대 개수를 하나의 정수로 출력한다.
두 번째 줄에 최적 순열을 이루는 개의 정수를 출력한다. 순열의 앞 개 원소는 입력과 일치해야 한다.