Tantangan
Diberi n x m
matriks dengan n > 1
dan m > 1
diisi dengan bilangan bulat
1 2 3 4 5 6
dan daftar bilangan bulat dengan nilai persis sama seperti 2x2
blok dalam matriks ( (n-1)*(m-1)
jika Anda membutuhkan angka pastinya)
[1, 2]
Keluarkan matriks dengan setiap 2x2
blok diputar oleh nilai saat ini dalam daftar dalam urutan yang diberikan. Contoh di atas akan menghasilkan
4 6 2 5 3 1
Blok pertama diputar satu kali ke kanan dan blok kedua diputar dua ke kanan.
Catatan
- Bilangan bulat positif berarti Anda memutar dengan benar melalui banyak langkah itu.
- Bilangan bulat negatif berarti Anda memutar ke kiri dengan banyak langkah itu.
- Nol berarti Anda tidak memutar.
- Anda memutar blok secara bijaksana. Itu artinya Anda mulai di baris pertama dan ke kanan. Setelah Anda memutar setiap blok di baris itu, Anda pergi ke yang berikutnya. Pada akhirnya setiap blok diputar tepat satu kali.
- Perlu diingat bahwa blok saling tumpang tindih. Matriks pertama di atas memiliki blok
[[1,2],[4,5]]
dan[[2,3],[5,6]]
misalnya. - Setiap rotasi blok mempengaruhi rotasi pada blok yang berdekatan. Inilah sebabnya mengapa Anda harus melakukan rotasi pada pola yang dijelaskan di atas.
Aturan
- Anda dapat mengambil input dalam format yang paling nyaman. Silakan tentukan dalam jawaban Anda yang mana yang Anda gunakan. Ini tidak memungkinkan Anda untuk membaca matriks blok-bijaksana.
- Fungsi atau program lengkap diizinkan.
- Aturan default untuk input / output.
- Celah standar berlaku.
- Ini adalah kode-golf , sehingga byte-count terendah akan menang. Tiebreak adalah pengiriman sebelumnya.
Uji kasus
Format input di sini adalah daftar daftar untuk matriks dan daftar normal untuk nilai-nilai.
[[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]]
Selamat Coding!
4,=
modulo yang benar (kecuali jika blok Anda perlu dijalankan setidaknya sekali?).