Một thời gian trôi qua đáng kính của trẻ em là để chỉ ra rằng hình ảnh của "Rubik's Cubes" (trên áo phông, áp phích, vv) không thực sự có thể giải được.
Điều đầu tiên cần kiểm tra là khối lập phương được tạo thành từ các mảnh bên phải. Để có thể giải được một khối lập phương cần sáu màu với chín ô vuông. Khối lập phương cũng cần mỗi đơn vị cạnh và góc (đây là những khối nhỏ hơn tạo nên khối) là duy nhất. Chúng không chỉ phải là duy nhất mà nếu hai mảnh trung tâm đối diện nhau thì không có mảnh cạnh hay góc nào có thể chứa cả hai màu đó.
Một khi bạn có một khối lập phương được tạo thành từ tất cả các mảnh phù hợp, bạn vẫn cần xác minh nó có thể giải được. Có một vài quy tắc ở đây, vì vậy tôi sẽ nói với một chuyên gia để giải thích chúng, spoiler bên dưới giải thích cách chúng ta có thể làm điều này. Nếu bạn muốn tự mình giải quyết vấn đề, bạn không cần phải truy cập trang web để hiểu hoặc tham gia vào thử thách này.
Nhiệm vụ của bạn là lấy một mẫu làm đầu vào và xác định xem trên thực tế nó có phải là khối Rubik có thể giải được hay không. Để có thể giải quyết được, phải có một cách để thực hiện các bước di chuyển hợp lệ trên một khối để khối lập phương chỉ có một màu trên mỗi mặt (và các mặt khác nhau có màu khác nhau). Hầu hết các hình khối của Rubik đều có màu chuẩn (Màu trắng đối diện với màu Vàng, v.v.) bạn không thể cho rằng trạng thái giải quyết tuân theo màu đặc biệt này.
Di chuyển hợp lệ là xoay theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ của một mặt của khối lập phương. Với sự xoay của khuôn mặt của khối lập phương, bất kỳ hình vuông nào giáp với khuôn mặt cũng được xoay theo, kết nối với khuôn mặt mà chúng đã chạm vào trước đó.
Tôi
Bạn có thể lấy khối lập phương theo bất kỳ cách hợp lý. Nếu ngôn ngữ của bạn có một số loại "khối lập phương" tích hợp, tốt cho bạn, điều đó cũng tốt như đầu vào, khôn ngoan khác, bạn có thể lấy một mảng 2D của mạng, của khối lập phương, 1 3 cho 3 danh sách cho mỗi mặt. Chỉ cần hợp lý. Nếu bạn muốn biết một định dạng cụ thể có thể chấp nhận được bình luận hay ping tôi trong trò chuyện và tôi sẽ thêm vào thử thách để nêu rõ tính hợp lệ của nó.
Định dạng đầu vào của bạn chỉ cần hỗ trợ tối đa 9 màu có thể.
Đối với đầu ra, đây là một vấn đề quyết định, do đó bạn nên xuất một giá trị không đổi cho "Có, đây là khối Rubik hợp lệ" và một giá trị không đổi khác nhau cho "Không, đây không phải là khối Rubik hợp lệ".
Đây là môn đánh gôn, vì vậy câu trả lời sẽ được tính bằng byte với ít byte hơn.
Các trường hợp thử nghiệm
Dưới đây là các trường hợp thử nghiệm. Chúng được định dạng là mạng của một khối lập phương với mỗi hình vuông là một chữ cái duy nhất. Các chữ cái khác nhau đại diện cho màu sắc khác nhau. Bất kỳ thêm testcase có thể được thêm vào theo yêu cầu.
Tan
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWWWBBBOOO
YYY
YYY
YYY
GRR
GRR
ORW
WWRBWYBOOGGY
GGRBWGYBBOOO
OOGRWGYWWRBB
WYO
YYB
YYB
Không thể giải quyết
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