Waktu luang para pedant yang terhormat adalah untuk menunjukkan bahwa foto-foto "Rubik's Cubes" (pada kaos, poster, dll.) Sebenarnya tidak dapat dipecahkan.
Hal pertama yang harus diperiksa adalah kubus terdiri dari potongan yang tepat. Untuk dipecahkan kubus membutuhkan enam warna masing-masing dengan sembilan kotak. Kubus juga membutuhkan setiap unit tepi dan sudut (ini adalah kubus kecil yang membentuk kubus) untuk menjadi unik. Tidak hanya mereka harus unik tetapi jika dua bagian tengah saling berhadapan satu sama lain tidak ada bagian tepi atau sudut dapat mengandung kedua warna tersebut.
Setelah Anda memiliki kubus yang terdiri dari semua bagian yang tepat, Anda masih perlu memverifikasinya agar dapat dipecahkan. Ada beberapa aturan di sini, jadi saya akan meminta ahli untuk menjelaskannya, spoiler di bawah ini menjelaskan bagaimana kita bisa melakukan ini. Jika Anda tertarik untuk menyelesaikan masalah Anda sendiri, Anda tidak perlu mengunjungi situs untuk memahami atau berpartisipasi dalam tantangan ini.
Tugas Anda adalah mengambil pola sebagai input dan menentukan apakah itu sebenarnya kubus Rubik yang dapat dipecahkan. Untuk dipecahkan harus ada cara untuk melakukan gerakan yang valid pada kubus sehingga kubus hanya memiliki satu warna pada setiap wajah (dan wajah yang berbeda memiliki warna yang berbeda). Sebagian besar kubus Rubik memiliki pewarnaan standar (Putih berlawanan Kuning, dll.) Anda mungkin tidak menganggap bahwa kondisi penyelesaian mengikuti pewarnaan khusus ini.
Langkah yang valid adalah rotasi searah jarum jam atau berlawanan arah jarum jam dari satu permukaan kubus. Dengan rotasi muka kubus setiap kotak yang membatasi wajah diputar juga, tetap terhubung ke wajah yang sebelumnya mereka sentuh.
IO
Anda dapat mengambil kubus dengan cara yang masuk akal. Jika bahasa Anda memiliki beberapa tipe "kubus-wajah" bawaan, bagus untuk Anda, itu bagus sebagai input, jika tidak Anda dapat mengambil array 2D dari jaring, kubus, daftar 1 3 dengan 3 untuk setiap wajah. Masuk akal saja. Jika Anda ingin tahu apakah format tertentu dapat diterima komentar atau ping saya dalam obrolan dan saya akan menambah tantangan untuk menyatakan validitasnya.
Format input Anda hanya perlu mendukung hingga 9 warna yang memungkinkan.
Untuk output, ini adalah masalah keputusan sehingga Anda harus menampilkan satu nilai konstan untuk "Ya, ini adalah kubus Rubik yang valid" dan satu nilai konstanta berbeda untuk "Tidak, ini bukan kubus Rubiks yang valid".
Ini adalah kode-golf sehingga jawaban akan dinilai dalam byte dengan lebih sedikit byte lebih baik.
Uji Kasus
Berikut ini adalah contoh-contoh uji. Mereka diformat sebagai jaring kubus dengan setiap kotak sebagai satu huruf. Huruf yang berbeda mewakili warna yang berbeda. Setiap testcases lagi dapat ditambahkan atas permintaan.
Larut
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWWWBBBOOO
YYY
YYY
YYY
GRR
GRR
ORW
WWRBWYBOOGGY
GGRBWGYBBOOO
OOGRWGYWWRBB
WYO
YYB
YYB
Tidak dapat diselesaikan
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWYWBBBOOO
YWY
YYY
YYY
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWWWBBBOOO
YWY
YYY
YYY
RRR
RRR
GGG
GGYWYWRBBOBO
GGYWWWROBOOO
GGYWWWRBBOOO
BBB
YWY
YYY
RRW
RRW
GGG
GGYWWYEOBROO
GGYWWYEBBROO
GGOWWYWBBROO
BBB
YYW
YYO