Arka fon
Gölfenistan'ın hayali ulusunun resmi para birimi foo ve dolaşımda sadece üç çeşit para var: 3 foos, 7 foos ve 8 foos. Bu paraları kullanarak 4 foo gibi belirli miktarların ödenmesinin mümkün olmadığı görülebilir. Bununla birlikte, yeterince büyük miktarlar oluşturulabilir. İşiniz, madeni para sorunu olarak bilinen madeni paralarla (bu durumda 5 foos) oluşturulamayan en büyük miktarı bulmaktır .
Giriş
Girişiniz, dolaşımdaki paraların değerlerini temsil eden pozitif tamsayıların bir listesidir . Bu konuda iki şey garanti edilir:L = [n1, n2, ..., nk]
- Öğelerinin GCD'si
L
1'dir. L
1 sayısını içermiyor.
Sıralanmamış olabilir ve / veya kopyalar içerebilir (özel sürüm paraları düşünün).
Çıktı
GCD'si L
1 olduğundan, yeterince büyük her tamsayı m
, elemanlarının negatif olmayan bir doğrusal kombinasyonu olarak ifade edilebilir; diğer bir deyişle,
m = a1*n1 + a2*n2 + ... + ak*nk
bazı tamsayılar için . Çıktınız, bu formda ifade edilemeyen en büyük tamsayıdır . Bir ipucu olarak, çıkış daima daha az olduğu bilinmektedir halinde, ve maksimal ve minimal elemanları ( referans ).ai ≥ 0
(n1 - 1)*(nk - 1)
n1
nk
L
kurallar
Tam bir program veya işlev yazabilirsiniz. En düşük bayt sayısı kazanır ve standart boşluklara izin verilmez. Dilinizde bunun için yerleşik bir işlem varsa, onu kullanamayabilirsiniz. Yanıtınızı göndermeden önce test senaryolarını değerlendirebilmeniz dışında, zaman veya bellek verimliliği için herhangi bir gereklilik yoktur.
Bu meydan okumayı gönderdikten sonra user @vihan, Stack Overflow'un tam bir kopyası olduğunu belirtti . Bu Meta tartışmasına dayanarak , bu meydan okuma kopya olarak silinmeyecektir; ancak, SO sürümüne dayalı tüm cevapların orijinalleri belirtmesi, Topluluk Wiki durumu vermesi ve orijinal yazarın yanıtlarını buraya göndermek istediği takdirde silinmesini rica ediyorum.
Test Durumları
[3, 7, 8] -> 5
[25, 10, 16] -> 79
[11, 12, 13, 14, 13, 14] -> 43
[101, 10] -> 899
[101, 10, 899] -> 889
[101, 10, 11] -> 89
[30, 105, 70, 42] -> 383
[2, 51, 6] -> 49
[2,3]
Makul bir sürede yapabileceğim 13 baytlık bir Pyth çözümüm var ve başka bir şey yok. [2,5]
bellekte yaklaşık bir milyon Python listesi oluşturur.
FrobeniusNumber
Mathematica'da.