Yığın Taşması'ndaki bir sorudan ilham alındı .
Tamsayılar boş olmayan bir dizi göz önüne alındığında xve pozitif bir tamsayıdır n, hesaplamak toplamı her bir kayar bloğun uzunluğunun ndizisi boyunca x, dairesel aşağıdaki gibi sağdan değerleri ile sol eksik değerleri doldurma:
- ilk blok
x, öncen-1dairesel olarak kaydırılmış girişlerden önce gelen ilk girişi içerir ; - ikinci blok
x, öncen-2dairesel olarak kaydırılmış girişlerden oluşan birinci ve ikinci girişlere sahiptir ; ve bunun gibi.
Çıkış dizisi yile aynı boyutta x. nUzunluğunu aşmak mümkündür xve daha sonra değerleri birkaç kezx dairesel olarak yeniden kullanılır .
Örnekler
Örnek 1 (değerler yalnızca bir kez yeniden kullanılır)
x = [2, 4, -3, 0, -4]
n = 3
çıktı olarak vermek
y = [-2, 2, 3, 1, -7]
nerede
-2bloğun toplamıdır[0, -4, 2](ilk iki değer dairesel kaymadan gelir)2toplam[-4, 2, 4]değeridir (ilk değer dairesel kaymadan gelir)3toplamıdır[2, 4, -3](artık dairesel kaymaya gerek yok)1toplamı[4, -3, 0]-7toplamıdır[-3, 0, -4].
Örnek 2 (değerler birkaç kez yeniden kullanılır)
x = [1, 2]
n = 5
vermek
y = [7, 8]
nerede
7bloğun toplamıdır[1, 2, 1, 2, 1](ilk dört değer dairesel olarak yeniden kullanılmıştır)8bloğun toplamıdır[2, 1, 2, 1, 2](ilk üç değer dairesel olarak yeniden kullanılmıştır)
Ek kurallar
- Algoritma, keyfi büyüklükteki diziler ve isteğe bağlı tamsayı değerleri için çalışmalıdır. Programın veri tipi veya hafıza kısıtlamaları ile sınırlı olması kabul edilebilir; ancak pozitif ve negatif tamsayı değerleri de ele alınmalıdır.
- Giriş / çıkış, herhangi bir makul yoldan alınabilir / üretilebilir .
- Herhangi bir programlama dilinde programlara veya fonksiyonlara izin verilir . Standart boşluklar yasaktır.
- Bayt cinsinden en kısa kod kazanır.
Test durumları
x, n, -> y
[2, 4, -3, 0, -4], 3 -> [-2, 2, 3, 1, -7]
[1, 2], 5 -> [7, 8]
[2], 7 -> [14]
[-5, 4, 0, 1, 0, -10, -4], 4 -> [-19, -15, -5, 0, 5, -9, -13]
[-5, 4, 0, 1, 0, -10, -4], 1 -> [-5, 4, 0, 1, 0, -10, -4]
[-2, -1, 0, 1, 2, 3], 5 -> [4, 3, 2, 1, 0, 5]
[-10, 0, 10], 4 -> [-10, 0, 10]