Sebuah jumlah surat suara , yang akan kita label B , adalah sejumlah cara mengatur angka dari 1 sampai B (B + 1) / 2 menjadi segitiga, sehingga setiap baris dan kolom dalam urutan meningkat. Empat nomor surat suara pertama adalah:
a(0) = 1
a(1) = 1
a(2) = 1
a(3) = 2
a(3)
adalah 2, yang berarti ada 2 cara mengatur angka-angka dari 1 hingga 3(3+1)/2 = 6
sedemikian segitiga:
1 1
2 3 or 2 4
4 5 6 3 5 6
Lihat entri urutan OEIS untuk lebih jelasnya.
Tantangan Anda, mengingat segitiga surat suara, adalah untuk memverifikasi kebenarannya. Jika memenuhi persyaratan segitiga surat suara (baris dan kolom bertambah), Anda harus menampilkan berapa banyak cara lain (tidak termasuk yang ada di input) yang ada untuk mengatur segitiga dengan benar. Jika segitiga input tidak dibangun dengan benar, Anda seharusnya tidak menghasilkan apa-apa.
Trailing newlines diizinkan.
Memasukkan
Segitiga angka, yang mungkin atau mungkin bukan, merupakan surat suara yang sah. Sebagai contoh:
1
2 3
4 5 6
1
10 5
9 8 2
7 6 4 3
1
3 2
9
2 11
14 3 5
12 8 1 7
15 13 10 4 6
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
Keluaran
Jika inputnya adalah segitiga surat suara yang valid, sisa jumlah cara untuk mengatur angka yang sama dalam segitiga surat suara yang valid. Jika inputnya bukan segitiga surat suara yang valid, tidak ada. Misalnya, input di atas menghasilkan output ini ( <nothing>
adalah pengganti untuk output kosong aktual):
1 # the same as a(3)-1
<nothing>
<nothing>
<nothing>
33591 # the same as a(6)-1
Mencetak gol
Ini adalah kode-golf : seperti biasa, byte-count terendah akan menang. Tiebreaker diposting paling awal.
1/4 5/2 3 6
valid?