ベクトルの累積合計は、以前のすべての要素の合計を取得するだけで計算されます。例えば:
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]
ここで、上限と下限を課します。つまり、上限に達した場合は累積合計の増加を停止し、下限に達した場合は累積合計の減少を停止します。簡単な例:
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]
入力ベクトルは整数で構成され、必ずしもとだけでなく1
、-1
正と負の両方で構成されます。と仮定しupper_lim >= lower_lim
ます。ベクトルの最初の要素が境界の外側にある場合、境界に直接ジャンプします(最後の例を参照)。
入力として整数のベクトル、および上限と下限を表す2つの整数を受け取る関数を作成します。上で定義したように、制限付き累積ベクトルを出力します。入力は、関数の引数として、またはSTDINからのいずれかです。
標準コードのゴルフ規則が適用されます。
例:
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.