바나나 송이
면접 대비시간 제한20초메모리 제한1024 MB
나무마다 바나나 송이 수가 주어질 때, 최대 두 개의 연속 구간을 골라 합이 정확히 K가 되는 최소 나무 수를 구합니다. 불가능하면 -1을 출력합니다.
문제
바바라는 앨런의 바나나 농장을 찾아간다. 농장에는 그루의 바나나 나무가 긴 한 줄로 늘어서 있으며, 이 줄을 배열 로 나타낸다. 번째 위치의 나무에는 송이의 바나나가 달려 있다. 모든 나무의 가격은 같다. 바라바가 나무 한 그루를 사면 그 나무에 달린 바나나 송이를 모두 얻는다. 앨런에게는 특별한 규칙이 있다. 줄에 빈틈이 많아지는 것을 원하지 않아서, 바라바는 나무 줄에서 최대 2개의 연속 구간만 살 수 있다. 바라바는 산 나무들에 달린 바나나 송이의 합이 바구니 용량 와 같아지기를 원한다. 돈은 가능한 한 적게 쓰려고 한다. 바라바는 몇 그루의 나무를 사야 하는가?
입력
첫 줄에 테스트 케이스의 개수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 줄에는 두 정수 (앨런 농장의 나무 개수)과 (바라바 바구니의 용량)가 주어진다.
다음 줄에는 음이 아닌 정수 이 주어진다. 번째 정수는 번째 나무에 달린 바나나 송이의 개수다.
출력
각 테스트 케이스마다 Case #x: y 형식으로 한 줄을 출력한다. 여기서 는 테스트 케이스 번호(1부터 시작)이고, 는 농장의 연속 구간을 최대 2개까지 사용해 바나나 송이를 정확히 개 얻기 위해 바라바가 사야 하는 나무의 최소 개수다. 불가능하면 -1을 출력한다.
제한
- .
- 각 (1부터 까지)에 대해 .