각 저녁에 서로 다른 기계 M개로 최대 M그루를 정확히 D_i 미터로 자를 수 있을 때, T일 뒤 나무 높이 합의 최솟값을 구한다.
보통7동적 계획법그리디정렬아직 제출이 없습니다시간 제한2초메모리 제한512 MB수빈이는 정원에서 나무 N그루를 키운다. i번째 나무의 현재 높이는 Hi미터이고, 매일 아침 Ai미터씩 자란다.
수빈이는 나무를 자르는 기계를 M대 가지고 있다. i번째 기계는 높이가 Di미터보다 큰 나무 한 그루를 골라 그 높이를 정확히 Di미터로 자른다. 높이가 Di미터 이하인 나무에는 i번째 기계를 쓸 수 없다.
매일 저녁에 수빈이는 나무를 골라서 자른다. 한 그루도 고르지 않아도 된다. 이때 다음 두 조건을 지켜야 한다.
즉 같은 날 저녁에 잘리는 나무는 서로 다른 기계와 하나씩 짝을 이룬다.
하루는 아침의 성장과 저녁의 자르기로 이루어진다. T일이 지난 뒤 나무 높이의 합으로 가능한 값 중 최솟값을 구하는 프로그램을 작성하시오.
첫째 줄에 나무의 수 N과 기계의 수 M이 공백으로 구분되어 주어진다.
둘째 줄에 H1,H2,…,HN이 공백으로 구분되어 주어진다.
셋째 줄에 A1,A2,…,AN이 공백으로 구분되어 주어진다.
넷째 줄에 D1,D2,…,DM이 공백으로 구분되어 주어진다.
다섯째 줄에 T가 주어진다.
T일이 지난 뒤 나무 높이의 합으로 가능한 값 중 최솟값을 한 줄에 출력한다.
나무가 2그루 있다고 하자. 1번 나무는 높이가 4미터이고 하루에 7미터씩 자라며, 2번 나무는 높이가 7미터이고 하루에 1미터씩 자란다. 기계는 D1=7인 것 한 대뿐이고, T는 1이다.
첫째 날 아침이 지나면 1번 나무의 높이는 4+7=11미터, 2번 나무의 높이는 7+1=8미터가 된다. 저녁에 기계로 1번 나무를 잘라 7미터로 만들면 높이의 합은 15가 되고, 이보다 작게 만들 수는 없다.