보석 줍기
시간 제한2초메모리 제한128 MB
보석 N개의 값이 주어질 때 길이가 M 이상인 연속 구간 중 floor(1000*합/길이)를 최대화하는 구간을 평균 이분 탐색으로 찾는 문제입니다.
문제
수영이는 고대 유적에서 일렬로 놓인 보석 N개를 발견했다. 각 보석의 가치는 입력으로 주어진다. 수영이는 왼쪽에서 오른쪽으로만 이동하며, 각 위치에서 그 보석을 줍거나 그냥 지나칠 수 있다.
보석을 줍는 구간은 한 번만 선택할 수 있다. 줍기 시작했다면 그 위치부터 연속해서 최소 M개의 보석을 주워야 하며, 멈춘 뒤에는 다시 주울 수 없다. 즉, 길이가 M 이상인 하나의 연속 부분 구간을 선택해야 한다.
가져가는 보석이 너무 많으면 무거워질 수 있으므로, 수영이는 선택한 구간에 들어 있는 보석 가치의 평균을 최대화하려고 한다. 위 조건을 만족할 때 가능한 평균 가치의 최댓값을 구하라.
입력
첫째 줄에 두 정수 N, M이 주어진다.
다음 N개의 줄에는 각 보석의 가치가 순서대로 하나씩 주어진다. 각 보석의 가치는 0 이상 2,000 이하의 정수이다.
출력
가능한 평균 가치의 최댓값에 1,000을 곱한 정수를 첫째 줄에 출력한다.
반올림 오차를 피하기 위해 정수 연산을 사용한다. 선택한 구간의 가치 합을 S, 길이를 L이라고 할 때 1000*S/L의 정수 나눗셈값 중 최댓값을 출력한다.