Giới thiệu
Bạn đang ngồi trong một phòng hội đồng ở cuối một cái bàn dài. Bạn nhìn xung quanh và thấy Tim Cook, Hội đồng quản trị Apple, hồn ma của Steve Jobs và Jack Donaghy. Apple đã gọi cuộc họp này vì họ đã nhận ra màn hình khóa Android mát hơn bao nhiêu và họ muốn 1-UP chúng. Mọi người trong phòng nhìn chằm chằm vào bạn khi Ghost Steve khóc, "Giúp tôi với, CodeGolf Man! Bạn là hy vọng duy nhất của tôi!"
Vấn đề
Màn hình khóa Android là một lưới 3 x 3 chấm có thể được kết nối bằng cách vuốt một ngón tay từ một chấm sang điểm tiếp theo, tạo ra một đường dẫn. Mật khẩu được coi là bất kỳ đường dẫn có thể bao gồm bất kỳ số lượng dấu chấm nào và không bao gồm bất kỳ số lượng dấu chấm nào. (Trên điện thoại thực tế, đường dẫn phải dài ít nhất 4 chấm. Đối với thử thách này, hãy bỏ qua hạn chế đó.) Apple có kế hoạch thay thế lưới 3 x 3 bằng lưới M x N, đó là (M * N) / 9 lần tốt hơn!
Quy tắc:
Ví dụ: trên lưới 3x3 có các chấm được đánh số từ 1 đến 9:
1 2 3
4 5 6
7 8 9
Một số đường dẫn hợp lệ là:
1
3
7,2,3
1,5,9,2
1,8,6,5,4
4,2,3,5,6,7,8,9
5,9,6,4
Và một số đường dẫn không hợp lệ là:
1,3
1,9,5
7,5,4,7
4,6
Đầu vào của bạn sẽ là ba số:
(M,N,d)
Trong đó lưới là M x N và d là chiều dài của đường dẫn
1 <= M <= 16
1 <= N <= 16
1 <= d <= M * N
Chương trình hoặc hàm của bạn sẽ được cung cấp đầu vào dưới dạng một chuỗi được phân tách bằng dấu phẩy và nó phải trả về số lượng mật khẩu có thể có của độ dài đó. Ví dụ:
Input: 2,2,1
Output: 4
Input: 2,2,2
Output: 12
Input: 7,4,1
Output: 28
Quy tắc golf tiêu chuẩn áp dụng, chiến thắng mã ngắn nhất!
//If I've made a mistake or the rules are unclear, please correct me!
256!
hoán vị của các chấm trên lưới 16 x 16 đại diện cho mẫu mở khóa hợp lệ. Trong thực tế, một chương trình như vậy sẽ không bao giờ chấm dứt.