최대한의 휴식
면접 대비시간 제한2초메모리 제한1024 MB
각 날의 작업량 상한 W_i 안에서 근무일을 골라 총 작업량을 M 이상으로 채우고, 근무일 사이 휴식 길이의 최솟값을 최대화합니다.
문제
Amel은 SKH 회사에서 일을 잘하기로 소문난 유능한 사원이다. 그러나 체력이 매우 약한 Amel은 하루 일하고 나면 금방 지쳐서, 한 번 일한 뒤에는 가능한 한 오래 쉬고 싶어 한다. Amel은 번째 날에 최대 만큼 일할 수 있고, 총 만큼의 일을 해야 한다. Amel은 출근한 날들 사이에서 일하지 않고 연속으로 쉬는 기간의 최솟값을 최대화하려고 한다.
예를 들어 7일 동안의 할당량이 각각 이고 Amel에게 주어진 할당량이 라고 하자. 첫 번째, 세 번째, 일곱 번째 날에 일하면 가 되어 할당량을 채울 수 있다. 이때 연속으로 쉬는 날은 각각 1일과 3일이고, 이 중 최솟값은 1일이다. 두 번째와 여섯 번째 날을 고르면 으로 할당량을 채울 수 있고, 연속으로 쉬는 날은 3일이므로 최솟값은 3일이다. 여섯 번째 날과 일곱 번째 날을 고르면 출근한 날 사이의 간격이 0일이므로 최솟값은 0일이다.
첫 출근일 이전의 휴식이나 마지막 출근일 이후의 휴식은 연휴에 포함하지 않는다.
입력
첫 줄에 Amel이 일할 수 있는 날짜의 수 ()과 할당량 ()이 공백으로 구분되어 주어진다.
둘째 줄에는 번째 날에 할 수 있는 일의 양 (, )가 공백으로 구분되어 주어진다.
입력되는 모든 수는 정수이다.
출력
연속으로 쉴 수 있는 기간의 최솟값이 가질 수 있는 최댓값을 출력한다.
일 모두 출근해도 할당량을 채울 수 없으면 -1을 출력하고, 하루 만에 할당량을 채울 수 있으면 "Free!"(따옴표 제외)를 출력한다.