Giả sử bạn được cung cấp một tập hợp các số nguyên không giao nhau[a1,b1],[a2,b2],[a3,b3],...,[aN,bN]
. (Trường hợp [a,b]
tập hợp các số nguyên lớn hơn hoặc bằng a
và nhỏ hơn hoặc bằng b
.)
Khoảng tại chỉ số X
bao gồm bX - aX + 1
các giá trị. Chúng tôi sẽ gọi số này cX
.
Cho rằng mỗi khoảng có thể là ...
- không thay đổi (vẫn như
[aX,bX]
), - mở rộng sang bên phải về
+
phía số của dòng bằng cáchcX
(trở thành[aX,bX + cX]
), - hoặc mở rộng sang bên trái về
-
phía số của dòng bằng cáchcX
(trở thành[aX - cX,bX]
),
số lượng giá trị tối đa có thể được bao phủ bởi sự kết hợp của tất cả các khoảng thời gian được cập nhật là gì, cho rằng chúng vẫn không giao nhau?
Viết hàm hoặc chương trình lấy một chuỗi biểu mẫu [a1,b1],[a2,b2],[a3,b3],...,[aN,bN]
và tính toán mức tối đa này. Nếu viết một hàm, trả về giá trị. Nếu viết một chương trình đầy đủ, sử dụng stdin cho đầu vào và in giá trị ra thiết bị xuất chuẩn (hoặc sử dụng các lựa chọn thay thế gần nhất).
Bạn có thể giả sử tất cả các giá trị đều nằm trong giới hạn số nguyên 32 bit được ký bình thường và aX
nhỏ hơn hoặc bằng bX
với tất cả các chỉ số X
. Các khoảng có thể theo thứ tự bất kỳ, chúng không nhất thiết phải luôn luôn tăng. Chúng phải được đưa ra dưới dạng một chuỗi trong định dạng trên. Chuỗi có thể trống, trong trường hợp đó, câu trả lời sẽ là 0.
Đệ trình ngắn nhất tính bằng byte thắng.
Thí dụ
Nếu đầu vào là [-3,0],[1,2],[4,9]
đầu ra sẽ là 22. Khoảng giữa không có chỗ để mở rộng, do đó, nó phải không thay đổi. Khoảng thời gian bên trái và bên phải có thể được mở rộng đến [-7,0]
và [4,15]
tương ứng. Liên kết [-7,0]
và [1,2]
và [4,15]
chứa tất cả các giá trị từ -7 đến 15, ngoại trừ 3. Đó là 22 giá trị.
[5,6]
trở thành [3,8]
(cho câu trả lời là 6), hoặc có thể chỉ [5,8]
hoặc [3,6]
(cho câu trả lời là 4)?