บทนำ
นี่คือการติดตามความท้าทายนี้ที่คุณรับบทเป็นฝาแฝดผู้ชั่วร้าย การเป็นคนชั่วคุณไม่ต้องการเพิ่มส่วนแบ่งให้มากที่สุด แต่จะไม่ยุติธรรมเท่าที่จะเป็นไปได้และคุณจะไม่ทำให้ชัดเจนเกินไปนั่นคือสาเหตุที่คุณคิดแผนการดังต่อไปนี้:
คุณจะบอกคนอื่น ๆ ว่าคุณต้องการที่จะยุติธรรมเท่าที่จะทำได้เหมือนพี่น้องของคุณและคุณจะต้องแบ่งจำนวนเต็มออกเป็นความยาวเท่ากัน ดังนั้นสำหรับแต่ละจำนวนเต็มคุณจะได้จำนวนคนที่เหมาะสมเช่นความแตกต่างระหว่างชิ้นใหญ่ที่สุดกับชิ้นเล็กที่สุดคือสูงสุด
ตัวอย่างเช่นถ้าคุณได้รับจำนวนเต็ม6567
คุณสามารถปล่อยให้มันเป็นแยกออกเป็นสองชิ้นหรือสี่65,67
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 เสมอ
- ข้อมูลที่ป้อนอาจเป็นจำนวนเต็มรายการหลักหรือสตริง
- คุณไม่ต้องจัดการอินพุตที่ไม่ถูกต้อง
Testcases
คุณจะต้องรายงานจำนวนคนที่ต้องการผลลัพธ์เท่านั้นพาร์ติชั่นที่เป็นไปได้มีไว้เพื่อประกอบการอธิบายเท่านั้น:
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