소개
이것은 당신이 그 사람의 사악한 쌍둥이 역할을 수행하는 이 도전 의 후속 조치 입니다. 사악하기 때문에 당신은 당신의 몫을 최대화하고 싶지 않고, 가능한 한 불공평해야하고 그것을 너무 명백하게 만들지 않을 것입니다.
당신은 다른 사람들에게 당신이 형제처럼 가능한 한 공정하고 싶다고 말하고 정수를 같은 길이의 조각으로 나눌 것입니다. 따라서 각 정수마다 가장 큰 조각과 가장 작은 조각의 차이가 최대가되도록 적절한 양의 사람들이 나타납니다.
예를 들어 정수가 주어지면 6567그대로 두어 2 개 65,67또는 4 개로 나눕니다 6,5,6,7. 이는 다음과 같은 최대 차이점을 제공합니다.
6567 -> max() = 0
65,67 -> max(|65-67|) = 2
6,5,6,7 -> max(|6-5|,|6-5|,|6-6|,|6-7|,|5-6|,|5-7|,|6-7|) = 2
당신은 단지 악을 원하기 때문에 당신이 선호하지 않는 67이상 7, 따라서 당신은 출력 중 하나를 의지 2나 4.
다른 하나 (특별한 경우는 적음); 정수가 주어지면 다음 121131과 같이 나눌 수 있습니다.
121131 -> max() = 0
121,131 -> max(|121-131|) = 10
12,11,31 -> max(|12-11|,|12-31|,|11-31|) = 20
1,2,1,1,3,1 -> max(…) = 2
이번에는 단 하나의 솔루션이 있습니다. 즉 3세 사람의 경우 그 차이가 최대이기 때문입니다.
도전
정수 결정을 감안할 때 어떤 최대한 악의 가능한 방법을와보고 있는 사람 수에 이를 달성하기 위해 필요합니다.
규칙
- 입력은 항상 ≥ 1입니다
- 입력은 정수, 숫자 목록 또는 문자열 일 수 있습니다.
- 유효하지 않은 입력을 처리 할 필요가 없습니다
테스트 케이스
필요한 인원 수만보고하면되며 가능한 파티션은 단지 설명을위한 것입니다.
In -> splits (difference) -> Out
1 -> [1] (0) -> 1
10 -> [1,0] (1) -> 2
11 -> [11] or [1,1] (0) -> 1 or 2
12 -> [1,2] (1) -> 2
42 -> [4,2] (2) -> 2
101 -> [1,0,1] (1) -> 3
2222 -> [2222] or [22,22] or [2,2,2,2] (0) -> 1 or 2 or 4
6567 -> [65,67] or [6,5,6,7] (2) -> 2 or 4
123000 -> [123,000] (123) -> 2
123001 -> [123,001] (122) -> 2
121131 -> [12,11,31] (20) -> 3
294884 -> [294,884] (590) -> 2
192884729 -> [192,884,729] (692) -> 3
123456189012 -> [123456,189012] (65556) -> 2
123457117346 -> [1234,5711,7346] (6112) -> 3