PPCG Claus'ın Hediyelerini Sunmasına Yardım Edin
genel bakış
PPCG Claus armağanlarını teslim etmek için geç saatlere kadar hella koşuyor çünkü bugünlerde çok sayıda tuhaf küçük kiddos var. Bu, PPCG Claus'ın tüm hediyeleri doğru yere almasını çok daha zorlaştırıyor. Senin zorluğun ona hediyelerini doğru bir şekilde iyileştirmesine yardım etmek.
Karmaşıklık
Teslim etmesi gereken çocukları temsil eden büyük harfli adların bir listesi ve sayılarla temsil edilen hediyelerin bir listesi verildiğinde, hediyeleri söz konusu çocuklar arasında nasıl dağıtacağınızı anlamanız gerekir. Tabii ki bir yakalama var ....
Günümüzde çocuklar seçici oluyor, eğer kiddo garip bir arkadaşsa (ilk baştaki ASCII kodu gariptir) garip bir hediye istiyor! Eğer eşit bir arkadaşsa (ilk baştaki ASCII kodu bile), ona açıkça bir tane bile verilmelidir! Bununla birlikte, 3'e bölünebilen herhangi bir çocuk yaramaz, yaramaz bir delikanlıdır, bu nedenle PPCG Claus'ın gelecek yıl davranışlarını sağlamak için onları tamamen görmezden gelmesi gerekir. Güzergahını bir başarı olarak görmek için, tüm hediyeleri, onları hak eden tüm çocuklara teslim etmeli ve herhangi bir çocuğa çok fazla hediye vermemelidir. Herhangi bir çocuk akranlarından 3+ daha fazla hediye alırsa, gelecek yıl yaramaz bir çocuk olma riski vardır ve bu doğru değildir! Ayrıca, eğer iyi bir çocuk başka bir iyi çocuk almadığında hediye alacak olsaydı, bu da o çocuğu kötülüğe çevirirdi.
Misal
Çocuklar aşağıdaki gibidir:
Kids = ["Amy", "Betty", "Clyde", "Dave", "Francine"] = [A,B,C,D,F] = [65,66,67,68,70]
- Betty, açıkça 3 numaralı katotlarda insanlığın çilesi.
- Amy ve Clyde doğumdan beri tuhaflar ve hatta hediye almaktan nefret ediyorlardı.
- Dave ve Francine normal, hatta çocuklar; sadece hediye bile almalılar!
Hediyeler aşağıdaki gibidir:
Presents = [1,2,3,4,5,6,7,8,9,10,11,12,13,14]
Olası bir çıktı:
[
['Amy',[1,3,5]],
['Betty',[]],
['Clyde',[7,9,11,13]],
['Dave',[2,4,6,8]],
['Francine',[10,12,14]]
]
İstisna Senaryoları
Ancak, PPCG Claus'ın hazır ve istekli olması, PPCG Claus'ın yapabileceği anlamına gelmez. İşte PPCG Claus'a kötü haberi şu mesajla kırmanız gereken istisna senaryolarının bir listesi:
PPCGmas is cancelled!
Aşağıdaki senaryolar Noel'in iptal edilmesine neden olacaktır:
- Çocuk yok.
[],[1,2,3]
- Pekala, dediler.
- İyi çocuk yok.
["Betty"],[1,2,3]
- Cidden, Betty'yi mahvet.
- İyi çocuklardan daha az hediye veya daha az hediye yoktur.
["Amy","Charles"],[]
- Bir veya daha fazla hediye almaz.["Amy","Charles"],[1]
- Bir veya daha fazla hediye almaz.
- Tüm iyi çocukları tatmin edecek tek / çift hediyeler yoktur.
["Amy","Dave"],[2,4,6]
- Amy mahvoldu.
PPCGmas'ı etkilememesi gereken senaryoların listesi:
- Artık Hediyeler (Tüm çocuklar azami miktarda hediye almalıdır).
["Amy","Dave"],[2,4,6,8,10,12,14,7,9] = [["Amy",[7,9]],["Dave",[2,4,6,8]]]
Tekrarlanan Ana Kurallar
- İyi çocuklar ilk başlangıcına göre eşit veya gariptir.
- Kötü çocuklar ilk olarak tamamen 3'e bölünebilir.
- Tüm iyi çocuklara en az bir hediye verilmelidir.
- Hiçbir iyi çocuk, diğer iyi çocuklardan 2'den fazla hediye almaz.
- Artık hediyeler olacaksa, bunları ihlal etmeden maksimum olarak dağıtmalısınız 4.
- Kötü çocuklar hiç hediye almamalıdır.
- Bunlardan HERHANGİ BİRİ ihlal edilirse , tam olarak çıktı almalısınız
PPCGmas is cancelled!
.
G / Ç Biçimi Gereksinimleri
- 1. giriş, yalnızca ilk baş harf değil, bir dizi / liste / virgülle ayrılmış tam ad dizesi olmalıdır.
- 2. giriş, dizi / liste / virgülle ayrılmış bir pozitif tamsayı dizisi olmalıdır.
- Çıktı, mantıklı olan hediyeleri nasıl dağıttığınıza dair herhangi bir açıklama olabilir; veya
PPCGmas is Cancelled!
.
Kazanan Ölçüt: code-golf
TL; DR: Betty bir pislik, rekabet etme.
3
? EDIT : Eğer biri "Betty" vida gerekir, neden hiç meydan okuma?