La sfida
Data una n x m
matrice con n > 1
e m > 1
piena di numeri interi
1 2 3 4 5 6
e un elenco di numeri interi con esattamente tanti valori quanti 2x2
blocchi nella matrice ( (n-1)*(m-1)
se hai bisogno del numero esatto)
[1, 2]
Emette la matrice con ogni 2x2
blocco ruotato dal valore corrente nell'elenco nell'ordine dato. L'esempio sopra cederebbe
4 6 2 5 3 1
Il primo blocco viene ruotato una volta a destra e il secondo blocco viene ruotato due a destra.
Appunti
- Un numero intero positivo significa che si ruota a destra da quel numero di passaggi.
- Un numero intero negativo significa che ruoti a sinistra per quel numero di passaggi.
- Uno zero significa che non si ruota.
- Ruoti i blocchi in ordine di riga. Ciò significa che inizi nella prima riga e vai a destra. Dopo aver ruotato tutti i blocchi di quella riga, si passa al successivo. Alla fine ogni blocco è stato ruotato esattamente una volta.
- Tieni presente che i blocchi si sovrappongono. La prima matrice sopra ha i blocchi
[[1,2],[4,5]]
e[[2,3],[5,6]]
per esempio. - Ogni rotazione di un blocco influenza la rotazione sui blocchi adiacenti. Questo è il motivo per cui devi fare le rotazioni nel modello sopra descritto.
Regole
- Puoi prendere l'input nel formato più conveniente. Si prega di specificare nella risposta quale si utilizza. Questo non ti consente di leggere la matrice in termini di blocco.
- Funzione o programma completo consentiti.
- Regole predefinite per input / output.
- Si applicano scappatoie standard .
- Questo è code-golf , quindi vince il conteggio dei byte più basso. Tiebreaker è una presentazione precedente.
Casi test
Il formato di input qui è un elenco di elenchi per la matrice e un elenco normale per i valori.
[[1,2], [3,4]], [-3] -> [[4,1], [3,2]] [[1,1,1], [1,1,1]], [-333, 666] -> [[1,1,1], [1,1,1]] [[1,2,3], [4,5,6]], [1,2] -> [[4,6,2], [5,3,1]] [[1,2,3], [4,5,6], [7,8,9]], [4,0,12, -20] -> [[1,2,3], [4, 5,6], [7,8,9]] [[1,2,3,4,5], [5,4,3,2,1], [1,2,3,4,5]], [2, -3,4,1,6, 24,21, -5] -> [[4,1,5,2,4], [2,1,3,5,5], [3,2,4,3,1]]
Buona programmazione!
4,=
modulo corretto (a meno che il blocco non debba essere eseguito almeno una volta?).