Uzun zamandır bir Gelişmiş Toplama Cihazı Denetleyicisi ™' nden veri topluyorsunuz . Günlükleri kontrol edersiniz ve dehşetinize göre bir şeyin çok yanlış gittiğini fark edersiniz: veriler sadece sayıların son bitlerini içerir!
Neyse ki, başlangıç değerini biliyorsunuz ve değerin asla hızlı değişmediğini biliyorsunuz. Bu, en başından itibaren mesafeyi bularak geri kalanını kurtarabileceğiniz anlamına gelir.
Meydan okuma
Bir modül N
ve ara değerler modulo listesi verildiğinde, bir değerin değiştiği miktarı hesaplamak için bir program veya işlev yazacaksınız N
.
Her sayı çifti arasındaki değişim her zamankinden daha azdırN/2
, bu nedenle her test durumu için yalnızca bir geçerli cevap olacaktır.
İstediğiniz N
formatta bir tamsayı > 2 ve bir değerler listesi gireceksiniz. Giriş STDIN veya komut satırı veya işlev bağımsız değişkenleri aracılığıyla verilebilir.
Orijinal değerin değiştiği miktar olan tek bir tam sayı çıktısı alırsınız. Çıktı STDOUT'a yazdırılabilir veya iade edilebilir.
kurallar
- Programınız herhangi bir mesafe ve katsayı için çalışmalıdır
2^20
. - Şunu varsayabilirsiniz:
N
en azından3
.- Listede en az 2 değer var.
- Listedeki tüm değerler en az 0 ve daha küçüktür
N
. - Rakamlardaki tüm değişiklikler küçüktür
N/2
.
- Başka bir şey geçersiz bir girdidir ve programınız istediği her şeyi yapabilir.
- Bu boşluk için standart boşluklar, standart olmayan kütüphaneler ve yerleşik fonksiyonlar yasaktır.
- Bu kod golf , bu yüzden bayttaki en kısa program kazanır.
Örnek test örnekleri
Giriş:
3
0 1 2 2 0 1 0 2 1 2 0 1 2 1 1
Çıktı:
4
Açıklama (örnek değerle):
Value mod 3: 0 1 2 2 0 1 0 2 1 2 0 1 2 1 1
Value: 0 1 2 2 3 4 3 2 1 2 3 4 5 4 4
Giriş:
10
5 2 8 9 5
Çıktı:
-10
Açıklama (örnek değerle):
Value mod 10: 5 2 8 9 5
Value: 15 12 8 9 5
Geçersiz girişler:
2
0 0 0 0 0
(çok küçük modül)
6
2 5 4 2
(2 ile 5 arasında çok büyük değişiklik)
:^;[5 2 8 9 5](\
mi?