지그재그
시간 제한2초메모리 제한1024 MB
순열에서 값이 x 이하인 원소만 써서 모든 구간의 최대 지그재그 부분수열 길이를 합한 g(x)를 x마다 구합니다.
문제
길이가 인 수열 이 주어진다. 이 수열에는 부터 까지의 정수가 모두 정확히 한 번씩 등장한다.
의 부분수열이란, 수열 에서 0개 이상의 원소를 제거해서 만든 수열을 뜻한다. 세 정수 (, )가 주어졌을 때, 다음 조건들을 만족하는 의 부분수열이 가질 수 있는 최대 길이를 라 하자.
- 부분수열에 들어간 원소들은 원래 위치가 구간에 있어야 한다. 다시 말해, 의 원소들로만 부분수열을 구성할 수 있다.
- 부분수열의 모든 원소의 값은 이하여야 한다.
- 부분수열은 지그재그 수열이어야 한다. 길이 인 수열 가 지그재그 수열이라는 것은, 각 ()에 대해 이라면 가, 이라면 가 성립한다는 뜻이다. 길이가 2 이하인 수열은 모두 지그재그 수열이다.
길이가 0인 빈 수열은 위 세 조건을 모두 만족하므로, 항상 이다.
을 만족하는 모든 정수 에 대해 를 모두 합한 값을 로 정의하자. 의 값을 모두 구하는 프로그램을 작성하여라.
입력
첫 번째 줄에 이 주어진다.
두 번째 줄에 이 공백을 사이에 두고 주어진다.
출력
개의 줄을 출력하라. 이 중 ()번째 줄에는 의 값을 출력하라.
제한
- 주어지는 모든 수는 정수이다.
- 모든 ()에 대해, .
- 모든 ()에 대해, .