Đây là lần thứ hai trong một loạt các thử thách Island Golf. Thử thách trước
Hai ẩn sĩ đã đến trên một hòn đảo sa mạc. Vì họ tìm kiếm sự cô độc, họ muốn sống càng xa nhau càng tốt. Họ nên xây dựng những túp lều của mình ở đâu để tối đa hóa khoảng cách đi bộ giữa chúng?
Đầu vào
Đầu vào của bạn sẽ là một lưới hình chữ nhật bao gồm hai ký tự, đại diện cho đất và nước. Trong các ví dụ dưới đây, đất #
và nước là .
, nhưng bạn có thể thay thế bất kỳ hai ký tự riêng biệt nào bạn muốn.
...........
...##......
..#####....
..#######..
.#########.
...#######.
...#####.#.
....####...
...........
Sẽ luôn có ít nhất hai gạch đất. Tất cả các ô đất sẽ liền kề nhau (tức là chỉ có một hòn đảo). Các gạch nước cũng sẽ tiếp giáp nhau (tức là không có hồ). Đường viền bên ngoài của lưới sẽ là gạch nước. Gạch đất sẽ không được kết nối theo đường chéo: tức là, bạn sẽ không bao giờ thấy một cái gì đó như
....
.#..
..#.
....
Đầu ra
Mã của bạn phải xuất ra cùng một lưới, với hai vị trí bài chòi được đánh dấu trên đó. Trong các ví dụ dưới đây, các vị trí bài chòi được đánh dấu bằng X, nhưng bạn có thể thay thế bất kỳ ký tự nào miễn là nó khác với các ký tự trên mặt đất và dưới nước của bạn.
Các vị trí bài chòi phải là hai ô đất, được chọn để tối đa hóa khoảng cách đi bộ giữa chúng. Chúng tôi xác định khoảng cách đi bộ là chiều dài của con đường ngắn nhất, hoàn toàn trên đất liền, giữa hai điểm. Gạch đất được coi là liền kề theo chiều ngang hoặc chiều dọc, nhưng không theo đường chéo.
Một giải pháp khả thi cho hòn đảo trên:
...........
...X#......
..#####....
..#######..
.#########.
...#######.
...#####.X.
....####...
...........
Khoảng cách đi bộ giữa hai điểm này là 11, đó là khoảng cách lớn nhất giữa hai điểm bất kỳ trên hòn đảo này. Có một giải pháp khoảng cách-11 khác:
...........
...##......
..X####....
..#######..
.#########.
...#######.
...#####.X.
....####...
...........
Chi tiết
Giải pháp của bạn có thể là một chương trình đầy đủ hoặc một chức năng . Bất kỳ phương thức nhập và xuất mặc định nào đều được chấp nhận.
Đầu vào và đầu ra của bạn có thể là một chuỗi nhiều dòng, một danh sách các chuỗi hoặc một mảng 2D / danh sách các ký tự / chuỗi ký tự đơn. Đầu ra của bạn có thể (tùy chọn) có một dòng mới duy nhất. Như đã đề cập ở trên, bạn có thể sử dụng bất kỳ ba ký tự riêng biệt nào thay thế #.X
(vui lòng ghi rõ trong bài gửi của bạn những ký tự bạn đang sử dụng).
Các trường hợp thử nghiệm
A. Quần đảo với các vị trí bài chòi độc đáo:
....
.##.
....
....
.XX.
....
......
......
..##..
...#..
......
......
......
......
..X#..
...X..
......
......
........
.#####..
.##..##.
.#..###.
.##..##.
........
........
.#####..
.##..##.
.#..###.
.#X..#X.
........
.........
.#####.#.
.#...#.#.
.#.###.#.
.#.....#.
.#######.
.........
.........
.#####.X.
.#...#.#.
.#.X##.#.
.#.....#.
.#######.
.........
B. Ví dụ về một hòn đảo có nhiều giải pháp khả thi:
........
....##..
...####.
..###...
.#####..
.#####..
..##....
........
Đầu ra có thể:
........
....#X..
...####.
..###...
.#####..
.X####..
..##....
........
........
....#X..
...####.
..###...
.#####..
.#####..
..X#....
........
........
....##..
...###X.
..###...
.#####..
.X####..
..##....
........
........
....##..
...###X.
..###...
.#####..
.#####..
..X#....
........
C. Trường hợp thử nghiệm lớn như một ý chính
Đây là code-golf : mã ngắn nhất trong mỗi ngôn ngữ sẽ thắng.