군수품 창고 정리
시간 제한1초메모리 제한1024 MB
N개 상자를 최대 M개의 연속 구간으로 나누고, 각 구간을 서로 다른 부대에 배정해 병사 한 명이 맡는 물량의 최댓값을 최소화합니다.
문제
군수품 창고에 번부터 번까지 번호가 매겨진 개의 군수품 박스가 번호 순서대로 일렬로 놓여 있다. 번 박스에는 개의 군수품이 들어 있다. 창고 정리를 맡은 부대에는 번부터 번까지 번호가 매겨진 개의 분대가 있고, 번 분대에는 명의 병사가 소속되어 있다.
지휘관은 부관에게 다음 방법을 활용하라고 지시했다. 군수품 박스 개를 번호가 연속한 박스로 이루어진 개 이하의 그룹으로 나눈다. 그룹의 개수만큼 분대를 차출하고, 각 박스 그룹을 차출한 분대에 하나씩 맡긴다. 그 분대의 병사들이 박스 그룹의 군수품을 모두 정리한다. 각 박스 그룹에는 최소 1개의 군수품 박스가 포함되어야 한다.
부관은 분대의 병사들이 맡은 작업을 다른 사람에게 떠넘기지 않도록, 병사마다 정리할 군수품의 개수를 미리 배정하기로 했다. 공평하게 나누기 위해, 지휘관이 지시한 방법을 따르면서 가장 많은 군수품을 정리하는 병사의 몫을 최소로 만들려고 한다.
부관의 의도대로 각 병사가 정리할 군수품의 개수를 모두 배정했을 때, 가장 많은 군수품을 정리하는 병사가 정리하게 될 군수품의 개수를 구하라.
입력
첫 번째 줄에 군수품 박스의 개수 과 분대의 개수 이 공백으로 구분되어 주어진다. (; )
두 번째 줄에 각 박스에 들어 있는 군수품의 개수 이 공백으로 구분되어 주어진다. ()
세 번째 줄에 각 분대의 병사 수 이 공백으로 구분되어 주어진다. ()
출력
가장 많은 군수품을 정리할 병사가 정리하게 될 군수품의 개수를 출력한다.