저전력
시간 제한4초메모리 제한256 MB
2nk개 배터리를 k개씩 묶어 각 묶음의 최솟값 두 개씩을 한 기계에 배정할 때 기계별 출력 차이의 최댓값을 최소화합니다.
문제
기계에 들어갈 고성능 칩을 만들고 있습니다. 칩 자체를 만드는 것은 쉽지만, 사용할 수 있는 배터리마다 출력이 제각각이라 전원 공급이 까다롭습니다.
기계가 대 있습니다. 각 기계에는 칩이 두 개 있고, 각 칩은 정확히 개의 배터리로 전원을 공급받습니다. 칩이 받는 절대적인 전력량 자체는 중요하지 않습니다. 한 기계는 두 칩의 출력이 서로 최대한 비슷할 때 가장 잘 작동합니다. 칩의 출력은 그 칩에 들어간 개 배터리의 출력 중 가장 작은 값으로 정의됩니다.
배터리 개를 모두 칩에 나누어 배분해야 합니다(모든 배터리를 사용하고, 각 칩은 정확히 개씩 받습니다). 모든 기계에서 두 칩의 출력을 똑같이 맞추는 것은 불가능할 수 있으므로, 대신 모든 기계에서 두 칩의 출력 차이가 최대 이하가 되도록 보장하고, 그 를 가능한 한 작게 만들고 싶습니다. 이때 가능한 가장 작은 를 구하세요.
예를 들어 기계가 대이고 칩마다 배터리가 개이며 배터리 출력이 라고 합시다. 한 가지 방법으로 출력 를 한 칩에, 같은 기계의 다른 칩에 를, 세 번째 칩에 를, 네 번째 칩에 을 배분할 수 있습니다. 그러면 네 칩의 출력은 각각 이 되어 두 기계 모두 차이가 입니다. 같은 결과를 내는 배분 방법은 이 밖에도 많습니다.
입력
입력은 하나의 테스트 케이스로 이루어집니다. 첫째 줄에는 양의 정수 두 개, 기계의 수 과 칩당 배터리 수 가 주어집니다(). 둘째 줄에는 배터리들의 출력을 나타내는 정수 개 가 주어집니다().
출력
모든 기계에서 두 칩의 출력 차이가 최대 이하가 되도록 배터리를 배분할 수 있는 가장 작은 수 를 출력하세요.