Ketika mengalikan monomial dalam basis Milnor untuk aljabar Steenrod, bagian dari algoritma melibatkan enumerasi "matriks yang diijinkan" tertentu.
Diberikan dua daftar bilangan bulat non-negatif r 1 , ..., r m dan s 1 , ..., s n , sebuah matriks bilangan bulat non-negatif X
diizinkan jika
Jumlah kolom j kurang dari atau sama dengan s j :
Jumlah baris ke-i yang diberi bobot oleh kekuatan 2 kurang dari atau sama dengan r i :
Tugas
Tulis sebuah program yang mengambil sepasang daftar r 1 , ..., r m dan s 1 , s 1 , ..., s n dan menghitung jumlah matriks yang diijinkan untuk daftar ini. Program Anda secara opsional dapat menggunakan m dan n sebagai argumen tambahan jika perlu.
Angka-angka ini dapat dimasukkan dalam format apa pun yang disukai, misalnya dikelompokkan ke dalam daftar atau disandikan di unary, atau apa pun.
Output harus berupa bilangan bulat positif
- Celah standar berlaku.
Mencetak gol
Ini adalah kode golf: Solusi terpendek dalam byte yang menang.
Contoh:
Untuk [2]
dan [1]
, ada dua matriks yang diijinkan:
Untuk [4]
dan [1,1]
ada tiga matriks yang diijinkan:
Untuk [2,4]
dan [1,1]
ada lima matriks yang diijinkan:
Kasus uji:
Input: [1], [2]
Output: 1
Input: [2], [1]
Output: 2
Input: [4], [1,1]
Output: 3
Input: [2,4], [1,1]
Output: 5
Input: [3,5,7], [1,2]
Output: 14
Input: [7, 10], [1, 1, 1]
Output: 15
Input: [3, 6, 16, 33], [0, 1, 1, 1, 1]
Output: 38
Input: [7, 8], [3, 3, 1]
Output: 44
Input: [2, 6, 15, 18], [1, 1, 1, 1, 1]
Output: 90
Input: [2, 6, 7, 16], [1, 3, 2]
Output: 128
Input: [2, 7, 16], [3, 3, 1, 1]
Output: 175