수열의 아름다움
시간 제한2초메모리 제한512 MB
각 나무의 높이가 구간에서 균등 독립적으로 정해질 때, 지그재그 부분수열의 최대 아름다움의 기댓값을 구한다.
문제
영선이는 나무 그루를 일렬로 심었다. 나무에는 번부터 번까지 번호가 붙어 있다. 번 나무가 다 자라면 높이는 이상 이하의 정수가 되고, 이 범위에 속한 각 정수가 나올 확률은 모두 같다. 나무의 높이는 서로 독립으로 정해진다.
영선이는 교차 수열을 좋아한다. 교차 수열의 정의는 다음과 같다.
- 길이가 인 수열은 교차 수열이다.
- 길이가 인 수열 는 이면 교차 수열이다.
- 길이가 인 수열 는 이면서 이거나, 이면서 이면 교차 수열이다.
- 길이가 인 수열 은 연속한 세 원소로 이루어진 , , , 이 모두 교차 수열일 때 교차 수열이다.
수열의 아름다움은 인접한 두 원소의 차이의 절댓값을 모두 더한 값이다. 즉 의 아름다움은 이다. 길이가 인 수열의 아름다움은 이다.
나무가 다 자란 뒤에 영선이는 번 나무부터 번 나무까지의 높이를 순서대로 공책에 적는다. 적은 수열이 교차 수열이면 그대로 둔다. 교차 수열이 아니면 수를 몇 개 지워서 교차 수열로 만든다. 남는 수는 원래 순서를 지킨다. 교차 수열을 만드는 방법이 여럿이면 아름다움이 가장 큰 쪽을 고른다. 이렇게 얻은 수열을 결과 수열이라고 한다.
결과 수열의 아름다움의 기댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 나무의 수 이 주어진다. ()
둘째 줄부터 개의 줄에 걸쳐 번 나무의 와 가 공백으로 구분되어 주어진다. ()
출력
결과 수열의 아름다움의 기댓값을 소수점 아래 여섯째 자리까지 출력한다. 소수점 아래 일곱째 자리에서 반올림하고, 자리가 남으면 으로 채워 여섯 자리를 정확히 맞춘다. 예를 들어 답이 이면 8.000000을 출력한다.
힌트
나무가 그루이고 세 나무의 높이 범위가 모두 이상 이하이면 다 자란 결과는 가지다.
- 과 는 수를 두 개 지워야 교차 수열이 되고, 아름다움은 이다.
- , , , 은 가운데 수를 지우면 되고, 아름다움은 이다.
- 과 는 지울 필요가 없고, 아름다움은 이다.
따라서 기댓값은 이다.