Göreviniz, kare basamaklı bir ızgara ( 0-9) verildiğinde, basamakların gruplandırılabileceği yollardan birini çıktılamaktır:
- Her rakam tam olarak bir grubun parçasıdır
- Tüm gruplar aynı sayıda basamağa sahiptir
- Tüm gruplar, çokgen benzeri bir şekle bağlıdır (bu, her grupta 1 öğe yoksa, gruptaki her basamağın aynı grubun en az bir basamağının yanında [sol, sağ, yukarı, aşağı] olduğu anlamına gelir).
- Tüm grupların toplamı aynıdır
Giriş ızgarası her zaman bir kare olacaktır: İstediğiniz herhangi bir giriş yöntemini seçebilirsiniz (bir işleve veya yönteme bağımsız değişkenler sağlamak dahil). Ayrıca, giriş programınızın basamakları gruplandırması gereken grup sayısını sağlar.
Örnek girdi:
Giriş biçiminizin olduğunu varsayalım stringOfDigits numberOfGroups.
Örnek bir giriş şöyledir:
156790809 3
hangi (bir ızgara sqrt(9) * sqrt(9)) çevirmek
1 5 6
7 9 0
8 0 9
3 gruba ayırmanız gerekir, her biri 9 / 3 = 3aynı toplamda elemanlara sahip olmalıdır .
Çıktı: Çıktı, her bir rakamı ve ardından a-zgrubunu gösteren bir harf olacak şekilde, biçimlendirme için isteğe bağlı boşluklar ve yeni satırlar içeren basamak dizesi olmalıdır . numberOfTotalDigits / numberOfGroupsHer grupta tam olarak unsurlar olmalıdır . Asla bir şeyi 26'dan fazla gruba bölmek zorunda kalmayacaksınız.
Örnek çıktı:
1a 5a 6b
7c 9a 0b
8c 0c 9b
Tüm as'leri bs ve bs ile değiştirmenin aeşit derecede geçerli olduğunu unutmayın. Her grup ayrı bir harfle belirtildiği sürece çıktı geçerlidir.
Buna ek olarak, çoğu programın bu satırlar boyunca bir şey çıkmasını bekliyorum, çünkü yeni satırlar / boşluklar isteğe bağlıdır:
1a5a6b7c9a0b8c0c9b
Bu durumda, grubun tüm basamak eklenerek a, bya c15. Buna ek olarak yapar, tüm gruplar bazı poligonun bağlıdırlar.
Geçersiz çıktılar:
1a 5a 6b
7c 9a 0c
8c 0b 9b
çünkü gruplar çokgen oluşturmaz (özellikle, 6bizole edilir ve 0cyalnızdır).
1a 5a 6b
7c 9a 0b
8c 0b 9b
çünkü grubun b4 elemanı, csadece 2 elemanı var.
Vb.
Geçerli bir çözüm yoksa, programınız herhangi bir şey yapabilir (yani durdurma, çökme, sonsuza kadar çalıştır), ancak programınız Nonegeçerli bir çözüm olmadığında yazdırırsa -15puanınıza göre.
Birden fazla çözüm varsa, yalnızca bir tane yazdırmanız gerekir, ancak -20programınız hepsini bir sınırlayıcı ile ayrılmış olarak yazdırırsa.
Bu kod golf, çok kısa kod (ikramiye ile) kazanır!
156790889 3olması gerektiği gibi görünüyor156790809 3
6bizole değil demek0b.