Bir vektörün kümülatif toplamı, sadece önceki tüm elemanların toplamı alınarak hesaplanır. Örneğin:
vec = [1 1 1 -1 -1 -1 -1 -1 1 1 1 1 -1]
cum_vec = [1 2 3 2 1 0 -1 -2 -1 0 1 2 1]
Şimdi, bir üst ve bir alt sınır uygulayın, yani üst sınırdaysa kümülatif toplamı artırmayı ve alt sınırda ise kümülatif toplamı azaltmayı durdurursunuz. Basit bir örnek:
upper_lim = 2
lower_lim = -1
vec = [1 1 1 -1 -1 -1 -1 -1 1 1 1 1 -1]
cum_vec = [1 2 2 1 0 -1 -1 -1 0 1 2 2 1]
Girdi vektörü, sadece 1
ve aynı zamanda -1
pozitif ve negatif olmak üzere tamsayılardan oluşur . Varsayın upper_lim >= lower_lim
. Vektörün ilk elemanı sınırın dışındaysa, doğrudan sınıra atlayın (son örneğe bakın).
Bir tamsayı vektörünü girdi olarak alan bir işlev ve üst ve alt sınırları temsil eden iki tamsayı yazın. Yukarıda tanımlandığı gibi sınırlı kümülatif vektör çıktısı. Giriş, işlev bağımsız değişkenleri olarak veya STDIN'den olabilir.
Standart kod golf kuralları geçerlidir.
Örnekler:
upper_lim = 6
lower_lim = -2
vec = [1 4 3 -10 3 2 2 5 -4]
cum_vec = [1 5 6 -2 1 3 5 6 2]
upper_lim = 100
lower_lim = -100
vec = [1 1 1 1 1 1]
cum_vec = [1 2 3 4 5 6]
upper_lim = 5
lower_lim = 0
vec = [10 -4 -3 2]
cum_vec = [5 1 0 2]
upper_lim = 0
lower_lim = 0
vec = [3 5 -2 1]
cum_vec = [0 0 0 0]
upper_lim = 10
lower_lim = 5
vec = [1 4 6]
cum_vec = [5 9 10]
|
Note, jumped to 5, because 5 is the lower bound.