Masalah
Pertimbangkan kotak 3 x 3 bilangan bulat non-negatif. Untuk setiap baris i
jumlah bilangan bulat ditetapkan menjadi r_i
. Demikian pula untuk setiap kolom j
, jumlah bilangan bulat dalam kolom itu ditetapkan c_j
.
Tugasnya adalah menulis kode untuk menyebutkan semua kemungkinan penugasan bilangan bulat yang berbeda ke kisi mengingat batasan jumlah baris dan kolom. Kode Anda harus menampilkan satu tugas pada satu waktu.
Memasukkan
Kode Anda harus mengambil 3 bilangan bulat non-negatif menentukan batasan baris dan 3 bilangan bulat non-negatif menentukan batasan kolom. Anda dapat mengasumsikan bahwa ini valid, yaitu batasan jumlah atau baris sama dengan jumlah batasan kolom. Kode Anda dapat melakukan ini dengan cara apa pun yang nyaman.
Keluaran
Kode Anda harus menampilkan grid 2d yang berbeda yang dihitungnya dalam format yang dapat dibaca manusia pilihan Anda. Semakin cantik tentu saja lebih baik. Output tidak boleh mengandung duplikat grid.
Contoh
Jika semua batasan baris dan kolom persis 1
maka hanya ada 6
kemungkinan yang berbeda. Untuk baris pertama, Anda dapat menempatkan 1
di salah satu dari tiga kolom pertama, untuk baris kedua sekarang ada2
alternatif dan baris terakhir sekarang sepenuhnya ditentukan oleh dua kolom sebelumnya. Segala sesuatu yang lain di grid harus diatur ke 0
.
Katakanlah input 2 1 0
untuk baris dan 1 1 1
kolom. Menggunakan format output APL yang indah, kisi-kisi integer yang mungkin adalah:
┌─────┬─────┬─────┐
│0 1 1│1 0 1│1 1 0│
│1 0 0│0 1 0│0 0 1│
│0 0 0│0 0 0│0 0 0│
└─────┴─────┴─────┘
Sekarang katakan input 1 2 3
untuk baris dan 3 2 1
kolom. Grid integer yang mungkin adalah:
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│0 0 1│0 0 1│0 0 1│0 1 0│0 1 0│0 1 0│0 1 0│1 0 0│1 0 0│1 0 0│1 0 0│1 0 0│
│0 2 0│1 1 0│2 0 0│0 1 1│1 0 1│1 1 0│2 0 0│0 1 1│0 2 0│1 0 1│1 1 0│2 0 0│
│3 0 0│2 1 0│1 2 0│3 0 0│2 1 0│2 0 1│1 1 1│2 1 0│2 0 1│1 2 0│1 1 1│0 2 1│
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘