Quando si moltiplicano i monomi nella base di Milnor per l'algebra di Steenrod, parte dell'algoritmo prevede l'enumerazione di determinate "matrici consentite".
Dato due elenchi di numeri interi non negativi r 1 , ..., r m e s 1 , ..., s n , una matrice di numeri interi non negativo X
è ammesso se
La somma della jth colonna è minore o uguale a s j :
La somma dell'ottava riga ponderata per potenze di 2 è inferiore o uguale a r i :
Compito
Scrivere un programma che prende una coppia di liste r 1 , ..., r m ed s 1 , s 1 , ..., s n e calcola il numero di matrici permesse per queste liste. Il tuo programma può facoltativamente prendere m e n come argomenti aggiuntivi se necessario.
Questi numeri possono essere inseriti in qualsiasi formato uno preferisca, ad esempio raggruppati in elenchi o codificati in unario o qualsiasi altra cosa.
L'output dovrebbe essere un numero intero positivo
- Si applicano scappatoie standard.
punteggio
Questo è il codice golf: vince la soluzione più breve in byte.
Esempi:
Per [2]
e [1]
, ci sono due matrici consentite:
Per [4]
e [1,1]
ci sono tre matrici consentite:
Per [2,4]
e [1,1]
ci sono cinque matrici consentite:
Casi test:
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