Bankaya gidip biraz para çekmem gerekiyor. İnternet için oda arkadaşım ve çamaşır için 8 $ ödemek için 30 $, 22 $ çekmek gerekiyor. Bunların hiçbiri değişmediğinden, iki doların iki bölüme ayrılması için 30 dolarım gerekiyor. Bu, anlatan kişi bana 30 dolarımı nasıl istediğimi sorduğunda, bir ricada bulunacağım anlamına geliyor. Onlara yirmi, beşinci ve beş kişide istediğimi söyleyebilirim. Ancak isteğimi, kendimi tekrarlamak zorunda kalmamak için mümkün olduğunca basitleştirmek istiyorum. Talebimi daha basit hale getirmek için, paramın yirmi en az 2 tane içermesini isteyebilirim çünkü 8 toplamın ima ettiği, ancak daha iyisi, basitçe aldığım faturalardan birinin bir dolarlık banknot olmasını isteyebilirim. Buna ikna olmadınız, sadece 8 yapmadan 29 dolar kazanmaya çalışın).
Yani hepsi güzel ve zordur ancak bankaya her gittiğimde bu hesaplamayı yapmam gerekiyor, bu yüzden bunu yapmak için bir program yazacağımı düşündüm (bunu benim için yapacak bir program yazdınız mı).
Programınız veya işlevin, yapmam gereken tüm ödemeleri temsil eden bir tamsayı listesi ve bankada mevcut olan faturaların değerlerini temsil eden bir tamsayı listesi almalı ve toplamı yapabilmeniz için en küçük miktardaki listeyi çıkarmalısınız. Bu, bu mezhep listesinin açıkça ödemeler listesine bölündüğünü de içerir.
Ekstra kurallar
Mezhep listesinin her zaman bir içereceğini varsayabilir
1
veya her listeye kendiniz ekleyebilirsiniz.Bazı girdilerin birden fazla minimal çözümü olacaktır. Bu durumlarda ikisinden birini de verebilirsiniz.
Bu kod-golf olduğundan, cevaplar daha az byte'ın daha iyi olmasıyla byte olarak puanlanacak.
Test Kılıfları
Payments, denominations -> requests
{22,8} {1,2,5,10,20,50} -> {1} or {2}
{2,1,2} {1,5} -> {1}
{20,10} {1,2,5,10,20,50} -> {}
{1,1,1,1} {1,2} -> {1,1,1}
{20,6} {1,4,5} -> {1}
{2,6} {1,2,7} -> {2}
{22, 11} {1, 3, 30, 50} -> {1, 3}
{44, 22} {1, 3, 30, 50} -> {1, 3, 3, 30}
{2,6} {1,2,7} -> {2}
.
(If you are not convinced of this just try to make 29 dollars without making 9)
8 yapmadan mı demek istiyorsun? Yoksa yanlış mı anladım