Giriş
Bu, o kişinin kötü ikizinin rolünü üstlendiğiniz bu zorluğun bir devamıdır. Kötülük olarak, payınızı en üst düzeye çıkarmak istemezsiniz, ancak mümkün olduğunca haksız olun ve bunu çok açık hale getirmeyeceksiniz, bu yüzden aşağıdaki şemayı buldunuz:
Diğerlerine kardeşiniz gibi olabildiğince adil olmak istediğinizi söyleyeceksiniz ve böylece tamsayıyı eşit uzunlukta parçalara ayıracaksınız. Böylece her tamsayı için en büyük ve en küçük parça arasındaki farkın maksimum olacağı şekilde doğru miktarda insan bulursunuz.
Örneğin 6567, olduğu gibi bırakabileceğiniz bir tam sayı verilirse, iki parçaya 65,67veya dörde bölün 6,5,6,7. Bu size aşağıdaki maksimum farkları verir:
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
Yalnızca kötü olmasını istediğim için tercih yok 67üzerinde 7ve böylece çıkış ya olacak 2ya 4.
Başka (daha az özel durum); tamsayı göz önüne alındığında şu 121131şekilde bölebilirsiniz:
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
Bu kez sadece bir çözüm var - yani 3- üç kişiyle fark maksimum.
Meydan okuma
Bir tamsayı belirlemek Verilen herhangi maksimum kötü olarak olası bir yol ve rapor insan sayısını bunu başarmak için gerekli.
kurallar
- Giriş her zaman ≥ 1 olacaktır
- Giriş bir tamsayı, rakam listesi veya dize olabilir
- Geçersiz girdileri işlemek zorunda değilsiniz
testcases
Sadece gerekli sayıda insanı bildirmeniz gerekir, olası bölümler sadece örnekleme amaçlıdır:
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