Chris, một người nghiện trò chơi ô chữ khó hiểu, có một thuật toán được thiết lập cho thứ tự mà anh ta giải quyết chúng.
Chúng tôi sẽ sử dụng hình ảnh trên như một hướng dẫn.
- Chris luôn bắt đầu với đầu mối xuyên suốt, trong trường hợp này là 1 Across. Chris là một người đam mê trò chơi ô chữ có khả năng, vì vậy người ta cho rằng anh ta sẽ luôn biết câu trả lời cho manh mối mà anh ta đang làm việc.
- Khi Chris hoàn thành một đầu mối, anh ta sẽ kiểm tra tất cả các đầu mối tiếp giáp với những gì anh ta đã hoàn thành (trong trường hợp đầu tiên, 1 Xuống, 2 Xuống và 3 Xuống) và sau đó hoàn thành đầu mối với số thấp nhất. Nếu không có manh mối liền kề, anh sẽ chuyển sang bước 3.
- Nếu đầu mối sao cho số tiếp theo (như được mô tả trong Bước 3) có cả đầu mối và đầu mối xuống, anh ta sẽ hoàn thành đầu mối trên đầu tiên (chắc chắn 100%, điều này giáp với OCD!)
- Nếu không có manh mối liền kề, anh ta sẽ đi đến đầu mối tiếp theo có số tiếp theo (ngang hoặc xuống)
- Lặp lại từ Bước 2 cho đến khi tất cả các đầu mối được hoàn thành.
Và đây là nơi nó đến với bạn, các lập trình viên thân yêu. Bạn đã được giao nhiệm vụ tạo mã có thể, khi được cung cấp một mẫu ô chữ, cung cấp đầu ra mô tả thứ tự các đầu mối dựa trên thuật toán của Chris để giải quyết nó.
Mã sẽ chấp nhận đầu vào của một mẫu câu đố ô chữ, dưới dạng .
một hình vuông #
đại diện cho hình vuông màu trắng và hình đại diện cho hình vuông màu đen.
Ví dụ :
.....#.........
.#.#.#.#.#.#.#.
...#...#.......
.#.#.#.#.#.#.#.
....#..........
##.#.#.#.#.#.#.
......#........
.###.#####.###.
........#......
.#.#.#.#.#.#.##
..........#....
.#.#.#.#.#.#.#.
.......#...#...
.#.#.#.#.#.#.#.
.........#.....
Đầu vào có thể thông qua: a) một tệp đọc biểu diễn của ô chữ hoặc b) theo đầu vào dòng của mỗi dòng của ô chữ, theo sau \n
, với một giây \n
cho biết EOF.
Và sau đó nó sẽ xác định phương pháp mà Chris sẽ giải quyết nó theo thuật toán trên mà anh đã mô tả.
Đầu ra phải ở định dạng của một loạt các hướng dẫn được phân tách bằng dấu phẩy ở dạng n(A|D)
, trong đó n
là số đầu mối theo sau A
cho ngang hoặc D
xuống.
Vì vậy, trong ví dụ trên (cả từ hình ảnh và mẫu ví dụ, là một và giống nhau), đầu ra sẽ là:
1A,1D,2D,3D,9A,10A,4D,5D,6D,7D,8D,11A,12A,13A,15A,14D,15D,16A,17A,18D,19D,20A,21D,23A,22D,24A,25D,27A,28A,26D,29A,30A,31A
Mã ngắn nhất sẽ thắng ...
Kiểm tra
Bạn phải cung cấp cho trình đệ trình mã, số byte, cũng như một trong bốn trường hợp thử nghiệm được trình bày theo định dạng .
và #
, cũng như đầu ra được tạo từ đầu vào này. Có bốn trường hợp thử nghiệm, ba trường hợp dưới đây cũng như mẫu ví dụ trên.
Các trường hợp thử nghiệm ví dụ:
Trường hợp kiểm tra 1
.....#
.#.#.#
...#..
.#.#.#
.....#
##.#..
Đầu ra: 1A,1D,2D,3D,4A,5A,6A,7A
Trường hợp thử nghiệm 2
.....#..
.#.##..#
.#....#.
...##.#.
.####...
......##
Đầu ra: 1A,1D,2D,5A,4D,4A,3D,3A,7A,8A,6D,9A
Trường hợp thử nghiệm 3
.........#
#.#.#.#.#.
....#...#.
#...#.#.#.
..###.#.#.
.#....#...
.#####...#
.....###..
Đầu ra: 1A,2D,3D,4D,5D,7A,8A,9A,10A,11A,11D,12A,13A,6D,14D,15A,16A,17A
Trường hợp thử nghiệm 4
.....#.........
.#.#.#.#.#.#.#.
...#...#.......
.#.#.#.#.#.#.#.
....#..........
##.#.#.#.#.#.#.
......#........
.###.#####.###.
........#......
.#.#.#.#.#.#.##
..........#....
.#.#.#.#.#.#.#.
.......#...#...
.#.#.#.#.#.#.#.
.........#.....
Đầu ra: 1A,1D,2D,3D,9A,10A,4D,4A,5D,6D,7D,8D,11A,12A,13A,15A,14D,15D,16A,17A,18D,19D,20A,21D,23A,22D,24A,25D,27A,28A,26D,29A,30A,31A
Chúc may mắn!
17A
phần cuối. Cũng là thứ tư 4A
ngay sau 4D
.