Bất cứ khi nào bạn thực hiện một di chuyển trên Rubik's Cube, sẽ có một động thái ngược lại hoàn tác bước di chuyển đầu tiên. Bởi vì điều này, mọi thuật toán (tập hợp các bước di chuyển) có một thuật toán đảo ngược để hoàn tác thuật toán đầu tiên.
Mục tiêu của thử thách này là tìm ra mặt trái của một thuật toán nhất định.
Đặc điểm kỹ thuật:
Đầu vào bao gồm một loạt các di chuyển cá nhân. Mỗi lần di chuyển là một chuỗi có độ dài 1 hoặc 2. Tất nhiên, bạn có thể sử dụng bất kỳ định dạng đầu vào nào có ý nghĩa nhất trong ngôn ngữ của bạn. Mỗi di chuyển bao gồm cấu trúc X
hoặc X'
hoặc X2
, trong đó X
là một chữ cái viết hoa hoặc chữ thường.
Để đảo ngược X
, chỉ cần thay thế nó bằng X'
. Tương tự như vậy, X'
trở thành X
. X2
mặt khác không được thay đổi.
Để tạo đầu ra, đảo ngược từng di chuyển, và sau đó đảo ngược mảng.
Ví dụ (các chuỗi được phân tách bằng dấu cách):
R
=> R'
D U'
=> U D'
S T A C K
=> K' C' A' T' S'
A2 B2
=> B2 A2
Ghi điểm:
Đây là môn đánh gôn, vì vậy số lượng byte ít nhất sẽ giành chiến thắng. Sơ hở tiêu chuẩn không được phép.
X3
hoặc X1
sẽ là một bổ sung tốt đẹp cho thử thách.
D2R2
một trường hợp thử nghiệm ...
R2
->R2'
hayB
->B3
được phép?