Yığın Taşması'ndaki bir sorudan ilham alındı .
Tamsayılar boş olmayan bir dizi göz önüne alındığında x
ve pozitif bir tamsayıdır n
, hesaplamak toplamı her bir kayar bloğun uzunluğunun n
dizisi boyunca x
, dairesel aşağıdaki gibi sağdan değerleri ile sol eksik değerleri doldurma:
- ilk blok
x
, öncen-1
dairesel olarak kaydırılmış girişlerden önce gelen ilk girişi içerir ; - ikinci blok
x
, öncen-2
dairesel olarak kaydırılmış girişlerden oluşan birinci ve ikinci girişlere sahiptir ; ve bunun gibi.
Çıkış dizisi y
ile aynı boyutta x
. n
Uzunluğunu aşmak mümkündür x
ve 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
-2
bloğun toplamıdır[0, -4, 2]
(ilk iki değer dairesel kaymadan gelir)2
toplam[-4, 2, 4]
değeridir (ilk değer dairesel kaymadan gelir)3
toplamıdır[2, 4, -3]
(artık dairesel kaymaya gerek yok)1
toplamı[4, -3, 0]
-7
toplamı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
7
bloğun toplamıdır[1, 2, 1, 2, 1]
(ilk dört değer dairesel olarak yeniden kullanılmıştır)8
bloğ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]