Bir tamsayı kesişmeyen aralık kümesi verildiğini varsayalım [a1,b1],[a2,b2],[a3,b3],...,[aN,bN]
. (Burada [a,b]
daha büyük ya da eşit tamsayılar grubu olduğu a
ve daha az ya da eşit b
).
Dizindeki aralık değerleri X
kapsar bX - aX + 1
. Bu numarayı arayacağız cX
.
Her aralığın ya ...
- değişmedi (olarak kalır
[aX,bX]
), - doğru (
+
çizginin ) çizgisinin sayının yanına doğru uzatılmış ,cX
[aX,bX + cX]
- veya (haline gelerek )
-
satırın kenarına doğru sola doğru uzatılmış ,cX
[aX - cX,bX]
hala kesişmeyen olmaları koşuluyla, güncellenen tüm aralıkların birliği tarafından kapsanabilecek maksimum değer sayısı nedir?
Formun bir dizesini alan [a1,b1],[a2,b2],[a3,b3],...,[aN,bN]
ve bu maksimum değeri hesaplayan bir işlev veya program yazın . Bir işlev yazıyorsanız, değeri döndürün. Tam bir program yazıyorsanız, giriş için stdin kullanın ve değeri stdout'a yazdırın (veya en yakın alternatifleri kullanın).
Tüm değerlerin normal imzalı 32 bit tam sayı sınırları içinde olduğunu ve bunun tüm dizinler için aX
eşit veya daha düşük olduğunu varsayabilirsiniz . Aralıklar herhangi bir sırada olabilir, her zaman artmayabilir. Yukarıdaki formatta bir dize olarak verilmelidir. Dize boş olabilir, bu durumda cevap 0 olur.bX
X
Bayt cinsinden en kısa gönderim kazanır.
Misal
Eğer giriş [-3,0],[1,2],[4,9]
22 olsaydı, orta aralığın her iki yönde de genişlemesi için bir yeri olmaz, bu yüzden değişmeden kalmalıdır. Sol ve sağ aralıklar sırasıyla [-7,0]
ve [4,15]
sırasıyla genişletilebilir . Birliği [-7,0]
ve [1,2]
ve [4,15]
22 değerlerini bulunuyor 3. haricinde gelen -7 15'e tüm değerleri içerir.
[5,6]
haline [3,8]
(6 cevabını), ya da sadece olabilir [5,8]
veya [3,6]
(4 cevap)?