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 = 3
aynı toplamda elemanlara sahip olmalıdır .
Çıktı: Çıktı, her bir rakamı ve ardından a-z
grubunu 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 / numberOfGroups
Her 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 a
s'leri b
s ve b
s ile değiştirmenin a
eş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
, b
ya c
15. 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, 6b
izole edilir ve 0c
yalnızdır).
1a 5a 6b
7c 9a 0b
8c 0b 9b
çünkü grubun b
4 elemanı, c
sadece 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 None
geçerli bir çözüm olmadığında yazdırırsa -15
puanınıza göre.
Birden fazla çözüm varsa, yalnızca bir tane yazdırmanız gerekir, ancak -20
programı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 3
olması gerektiği gibi görünüyor156790809 3
6b
izole değil demek0b
.