Іноді, коли я малюю, я малюю прямокутник, починаю з діагоналі від одного з кутів, а потім просто простежую лінію, "відбиваючи" її щоразу, коли потрапляю в бік прямокутника. Я продовжую це, поки не потрапляю на інший кут прямокутника (і сподіваюся, що співвідношення сторін мого прямокутника не було ірраціональним;)). Це як би простежити шлях лазера, засяяного у коробці. Ви повинні зробити результат цього за допомогою мистецтва ASCII.
Як приклад розглянемо коробку шириною 5
та висотою 3
. Ми завжди почнемо у верхньому лівому куті. В #
відзначає межу вікна. Зверніть увагу, що ширина і висота стосуються внутрішніх розмірів.
####### ####### ####### ####### ####### ####### #######
#\ # #\ # #\ \# #\ /\# #\ /\# #\/ /\# #\/\/\#
# \ # # \ /# # \ /# # \/ /# # \/ /# #/\/ /# #/\/\/#
# \ # # \/ # # \/ # # /\/ # #\/\/ # #\/\/ # #\/\/\#
####### ####### ####### ####### ####### ####### #######
Змагання
Враховуючи (позитивну) ширину та висоту коробки, ви повинні отримати остаточний результат відстеження лазера. Ви можете написати програму або функцію, взявши введення через STDIN (або найближчу альтернативу), аргумент командного рядка, аргумент функції та вивести результат за допомогою STDOUT (або найближчої альтернативи) або через значення повернення функції або аргументи.
Ви можете використовувати будь-який зручний список, рядок або формат чисел для введення. Вихід повинен бути одним рядком (якщо ви не надрукуєте його в STDOUT, що, звичайно, ви можете робити поступово). Це також означає, що ви можете взяти висоту першої та ширину другу - просто вкажіть точний формат введення у своїй відповіді.
У жодному рядку виводу не повинно бути ні провідної, ні пробільної пробілів. Ви можете необов'язково виводити один зворотний рядок.
Ви повинні використовувати простір, /
, \
і #
та відтворювати тестові випадки точно так , як показано на малюнку.
Випробування
2 2
####
#\ #
# \#
####
3 2
#####
#\/\#
#/\/#
#####
6 3
########
#\ /#
# \ / #
# \/ #
########
7 1
#########
#\/\/\/\#
#########
1 3
###
#\#
#/#
#\#
###
7 5
#########
#\/\/\/\#
#/\/\/\/#
#\/\/\/\#
#/\/\/\/#
#\/\/\/\#
#########
22 6
########################
#\ /\ /\ /\ /\ /\ #
# \/ \/ \/ \/ \/ \#
# /\ /\ /\ /\ /\ /#
#/ \/ \/ \/ \/ \/ #
#\ /\ /\ /\ /\ /\ #
# \/ \/ \/ \/ \/ \#
########################
X
були б необхідні для переїздів. Можливо, наступного разу. ;)