요새 방어
면접 대비시간 제한2초메모리 제한512 MB
각 구간의 방어자 한 명이 k_i명의 공격자를 막을 수 있을 때, s명의 방어자를 배치해 뚫고 들어오는 공격자 수의 합을 최소로 만든다.
문제
포위된 요새의 성벽은 1번부터 번까지 번호가 붙은 개의 구간으로 이루어져 있다. 첩보에 따르면 다음 공격에서 적은 번 구간을 공격할 병사 명을 보낸다. 요새를 방어하기 위해 성벽의 구간들에 명의 방어병을 배치한다.
성벽의 구간마다 방어 시설의 품질이 달라 방어 효율도 다르다. 번 구간의 방어병 한 명은 적 명의 공격을 막아낼 수 있다.
번 구간에 방어병 명을 보냈다고 하자. 그러면 적의 수가 를 넘지 않으면 이 구간에서는 적이 한 명도 요새로 뚫고 들어오지 못한다. 그렇지 않으면 명의 적이 요새로 뚫고 들어온다.
방어병을 구간에 배치해 총수가 가 되게 하면서 요새로 뚫고 들어오는 적의 수를 최소로 만드는 프로그램을 작성하라.
입력
첫째 줄에는 성벽의 구간 수 과 요새의 방어병 수 가 주어진다 (; ).
다음 개의 줄에는 정수 가 한 줄에 하나씩 주어진다. 는 번 구간을 공격하는 적의 총수, 는 이 구간의 방어병 한 명이 막아낼 수 있는 적의 수이다 ().
출력
요새로 뚫고 들어오는 적의 최소 수를 나타내는 정수 하나를 출력한다.
힌트
첫 번째 테스트에서 방어병 10명을 전부 하나뿐인 구간에 배치하면 모든 적을 막아낼 수 있어 아무도 요새로 들어오지 못한다. 두 번째 예에서는 예를 들어 방어병 두 명을 첫 번째 구간에, 한 명을 세 번째 구간에 보내면 된다.