아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

반짝반짝

시간 제한2초메모리 제한1024 MB

요약
전구 N개가 일렬로 놓인 전구 줄을 최대 K개의 조각으로 잘라 각 조각의 왼쪽 끝에서 전원을 넣을 때, 조각 내에서 자신보다 왼쪽에 있는 전구가 모두 살아 있어야 켜지는 전구의 기댓값을 최대로 만든다.
난이도

보통10점 중 7점

유형
동적 계획법, 확률, 누적 합, 분할 정복
정답자
아직 제출이 없습니다

문제

겨울 기분이 조금밖에 남지 않은 지금, 수현이는 크리스마스 트리를 장식하려고 한다.

크리스마스 트리는 전구 스트립으로 두른다. 전구 스트립에는 전구 NN개가 일(一)자로 설치되어 있고, 왼쪽에 전원을 넣는다. 이 전구 스트립은 전구 하나가 고장 나면 고장 난 전구를 시작으로 오른쪽에 설치된 모든 전구에 불이 들어오지 않는다.

수현이는 반짝반짝한 것을 좋아한다. 그래서 전구 스트립을 최대 KK개의 토막으로 자르고, 왼쪽에 전원을 각각 다시 넣어 트리를 장식하려고 한다. 이렇게 해서 불이 들어온 전구 개수의 기댓값이 최대가 되게 하고 싶다. 각 전구가 고장 날 확률이 주어질 때, 불이 들어온 전구 개수의 기댓값의 최댓값을 계산하라.

입력

다음과 같이 입력이 주어진다.

N KN\ K

p1 p2 … pNp_1\ p_2\ \dots\ p_N

출력

불이 들어온 전구 개수의 기댓값의 최댓값을 출력한다.

출력한 값과 정답의 절대 오차 또는 상대 오차가 10−610^{-6} 이하여야 한다.

제한

  • NN은 전구 스트립의 길이이다. (1≤N≤2 5001 \leq N \leq 2\,500)
  • 1≤K≤min⁡{N,10}1 \leq K \leq \min \left\{ N, 10 \right\}
  • pip_i는 전구가 고장 날 확률이며, 소수점 아래 두 자리까지 주어진다. 왼쪽 전구에서 오른쪽 전구 순서로 주어진다. (0≤pi≤10 \leq p_i \leq 1)
  • NN과 KK는 정수다.

예제3

  1. 예제 1

    입력
    5 1
    0.50 0.50 0.50 0.50 0.50
    
    예상 출력
    0.96875
    
  2. 예제 2

    입력
    5 2
    0.50 0.50 0.50 0.50 0.50
    
    예상 출력
    1.625
    
  3. 예제 3

    입력
    5 2
    0.10 0.20 0.30 0.40 0.50
    
    예상 출력
    3.024