Chán nản với việc thử nghiệm trên những con vật nhỏ bé trong nhà , Erwin Schrödinger đã giành giải thưởng Nobel đã quyết định tìm ra tia laser gần nhất và bắn nó vào mọi thứ thay vào đó. Vì ... khoa học!
Sự miêu tả
Bạn sẽ được cung cấp hai điểm mà tia laser đi qua và kích thước của chùm tia laser, và bạn phải xác định nơi mà tia laser phải đi, có thể đã đi và không thể đi.
Các tia laser có thể là ngang, dọc hoặc chéo. Đối với chùm tia laser kích thước 1, chúng trông giống như thế này:
# #
# #
##### # #
# #
# #
Các tia laser chéo cũng có thể được lật. Kích thước 2 chùm tia laser trông như thế này:
### ##
##### ### ###
##### ### ###
##### ### ###
### ##
Nói chung, để có được chùm tia laser có kích thước (n), chỉ cần lấy chùm tia laser có kích thước (n-1) và thêm chùm tia laser có kích thước (1) ở cả hai bên. Như một ví dụ cuối cùng, đây là tất cả các chùm laser có thể có kích thước 3, được hiển thị trên cùng một "bảng":
###.....#####.....##
####....#####....###
#####...#####...####
.#####..#####..#####
..#####.#####.#####.
...###############..
....#############...
.....###########....
####################
####################
####################
####################
####################
.....###########....
....#############...
...###############..
..#####.#####.#####.
.#####..#####..#####
#####...#####...####
####....#####....###
"Bảng" này sẽ luôn có kích thước 20x20 (tính theo ký tự).
Đầu vào
Chương trình của bạn sẽ được cung cấp năm số nguyên làm đầu vào. Chúng, theo thứ tự, x 1 , y 1 , x 2 , y 2 và kích thước của chùm tia laser. Chúng phải được thực hiện chính xác theo thứ tự đó. Nếu bạn muốn, bạn có thể lấy các cặp (x, y) theo thứ tự làm một mảng, bộ dữ liệu, danh sách hoặc loại dữ liệu tích hợp khác lưu trữ hai giá trị.
Cả hai điểm được đưa ra làm đầu vào sẽ nằm trong bảng và chúng được đảm bảo là khác biệt (tức là hai điểm sẽ không bao giờ giống nhau). Kích thước của chùm tia laser được liên kết với 1 ≤ size < 20. Sẽ luôn có ít nhất một chùm tia laser có thể đi qua cả hai điểm.
Đầu ra
Chương trình của bạn phải xuất ra lưới 20x20 gồm các ký tự sau:
#nếu mọi chùm tia laser có thể đi qua hai điểm cũng đi qua điểm này..nếu không có chùm tia laser đi qua hai điểm và điểm này.?nếu một số, nhưng không phải tất cả, các chùm tia laser có thể đi qua điểm này.Xnếu đây là một trong hai điểm đầu vào ban đầu (điều này sẽ ghi đè lên#).
Các trường hợp thử nghiệm
7, 7, 11, 3, 1
..............#.....
.............#......
............#.......
...........X........
..........#.........
.........#..........
........#...........
.......X............
......#.............
.....#..............
....#...............
...#................
..#.................
.#..................
#...................
....................
....................
....................
....................
....................
18, 18, 1, 1, 2
#??.................
?X??................
??#??...............
.??#??..............
..??#??.............
...??#??............
....??#??...........
.....??#??..........
......??#??.........
.......??#??........
........??#??.......
.........??#??......
..........??#??.....
...........??#??....
............??#??...
.............??#??..
..............??#??.
...............??#??
................??X?
.................??#
10, 10, 11, 10, 3
?????..????????..???
??????.????????.????
????????????????????
????????????????????
.???????????????????
..??????????????????
????????????????????
????????????????????
????????????????????
????????????????????
??????????XX????????
????????????????????
????????????????????
????????????????????
????????????????????
..??????????????????
.???????????????????
????????????????????
????????????????????
??????.????????.????
3, 3, 8, 10, 4
??????????..........
??????????..........
??????????..........
???X??????..........
???##?????..........
???###????..........
????###????.........
.????###????........
..????###????.......
..?????##?????......
..??????X??????.....
..??????????????....
..???????????????...
..????????????????..
..?????????????????.
..??????????????????
..??????????????????
..????????.?????????
..????????..????????
..????????...???????
Các trường hợp thử nghiệm được tạo bằng tập lệnh Ruby sau, nằm trong Stack Snippet để bảo tồn không gian dọc.
Quy tắc
Chương trình của bạn phải có khả năng giải quyết từng trường hợp thử nghiệm trong vòng dưới 30 giây (trên một máy hợp lý). Đây là một kiểm tra về sự tỉnh táo, vì chương trình Ruby thử nghiệm của tôi đã giải quyết tất cả các trường hợp kiểm tra gần như ngay lập tức.
Đây là môn đánh gôn , vì vậy giải pháp ngắn nhất sẽ thắng.
2 * size - 1. Kích thước 1 là 1 pixel, kích thước 2 là 3 pixel, kích thước 3 là 5 pixel (xem ví dụ ở trên), kích thước 4 là 7 pixel.