İşte sizin için bir programlama bulmacası:
Örneğin, dize çiftlerinin ve karşılık gelen sayıların bir listesi verildiğinde [[A,37],[B,27],[C,21],[D,11],[E,10],[F,9],[G,3],[H,2]]
, yalnızca dizeleri aşağıdaki şekilde içerecek başka bir liste çıkarır:
Herhangi bir dizenin toplam sayısı, giriş verilerindeki karşılık gelen sayıya tam olarak eşit olmalıdır.
Hiçbir dize sırayla bitişik olarak tekrarlanmamalı ve her dize çıktı listesinde görünmelidir.
Sonraki dizenin seçimi, iki kuralın üzerine çıkmadığı sürece rastgele yapılmalıdır. Her çözelti, sıfır olmayan bir seçilme olasılığına sahip olmalıdır.
Herhangi bir kombinasyon mümkün değilse, çıktı sadece olmalıdır
0
.
Giriş listesi herhangi bir sırayla (sıralı veya sıralanmamış) verilebilir ve listedeki dizeler herhangi bir uzunlukta olabilir.
Yukarıdaki örnek girişi için örnek çıktısı 1
[A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,G,H,G,H,G]
Giriş örneği 2:
[[A,6],[B,1],[C,1]]
İkinci giriş için çıkış:
0
çünkü kurallara dayalı bir liste mümkün değildir.
Örnek giriş 3:
[[AC,3],[BD,2]]
geçerli çıktı: [AC,BD,AC,BD,AC]
geçersiz çıktı: [AC,BD,AC,AC,BD]
Daha fazla açıklama gerekiyorsa, lütfen yorumlarda bana söylemekten çekinmeyin ve derhal buna göre hareket edeceğim.
Bu kod golf , her dil için bayt olarak en kısa kod kazanır!