สมมติว่าคุณจะได้รับชุดของที่ไม่ได้ตัด[a1,b1],[a2,b2],[a3,b3],...,[aN,bN]ช่วงของจำนวนเต็ม ( [a,b]ชุดของจำนวนเต็มมากกว่าหรือเท่ากับaและน้อยกว่าหรือเท่ากับb)
ช่วงเวลาที่ดัชนีXครอบคลุมbX - aX + 1ค่า เราจะโทรไปที่หมายเลขcXนี้
เนื่องจากแต่ละช่วงเวลาสามารถเป็น ...
- ไม่เปลี่ยนแปลง (อยู่ในฐานะ
[aX,bX]) - ขยายไปทางขวาไปทาง
+ด้านข้างของตัวเลขโดยcX(กลายเป็น[aX,bX + cX]), - หรือขยายไปทางซ้ายไปทาง
-ด้านข้างของจำนวนบรรทัดโดยcX(กลายเป็น[aX - cX,bX])
จำนวนสูงสุดของค่าใดบ้างที่สามารถรวมเข้าด้วยกันในช่วงเวลาที่อัปเดตทั้งหมดเนื่องจากพวกเขายังคงไม่ตัดกันทั้งหมด
เขียนฟังก์ชันหรือโปรแกรมที่รับสตริงของฟอร์ม[a1,b1],[a2,b2],[a3,b3],...,[aN,bN]และคำนวณค่าสูงสุดนี้ ถ้าเขียนฟังก์ชันให้คืนค่า หากเขียนโปรแกรมแบบเต็มให้ใช้ stdin สำหรับอินพุตและพิมพ์ค่าไปยัง stdout (หรือใช้ทางเลือกที่ใกล้เคียงที่สุด)
คุณอาจจะสมมติค่าทั้งหมดเป็นอย่างดีภายในปกติลงนาม 32 บิตขีด จำกัด ของจำนวนเต็มและaXน้อยกว่าหรือเท่ากับดัชนีทั้งหมดbX Xช่วงเวลาอาจอยู่ในลำดับใด ๆ พวกเขาไม่จำเป็นต้องเพิ่มขึ้นเสมอ พวกเขาจะต้องได้รับเป็นสตริงในรูปแบบข้างต้น สตริงอาจว่างเปล่าซึ่งในกรณีนี้คำตอบจะเป็น 0
การส่งที่สั้นที่สุดในหน่วยไบต์ชนะ
ตัวอย่าง
หากอินพุตเป็น[-3,0],[1,2],[4,9]เอาต์พุตจะเป็น 22 ช่วงเวลากลางไม่มีที่ว่างสำหรับขยายอย่างใดอย่างหนึ่งดังนั้นจึงต้องไม่เปลี่ยนแปลง ช่วงเวลาด้านซ้ายและด้านขวาสามารถขยายได้ทั้งไป[-7,0]และ[4,15]ตามลำดับ การรวมกันของ[-7,0]และ[1,2]และ[4,15]มีค่าทั้งหมดจาก -7 ถึง 15 ยกเว้น 3 นั่นคือ 22 ค่า
[5,6]เป็น[3,8](สำหรับคำตอบของ 6) หรือเป็นเพียง[5,8]หรือ[3,6](สำหรับคำตอบของ 4)?