{"problem":{"name":"108. The Hall Of Mirrors","description":{"content":"The Hall Of Mirrors You are in a hall of mirrors, and you shine a laser beam in a certain direction. Given the position of several diagonal mirrors, figure out the path of the laser beam. You shine ","description_type":"Markdown"},"platform":"Codeforces","limit":{"time_limit":1000,"memory_limit":262144},"difficulty":"None","is_remote":true,"is_sync":true,"sync_url":null,"sign":"CF10269108"},"statements":[{"statement_type":"Markdown","content":"The Hall Of Mirrors\n\nYou are in a hall of mirrors, and you shine a laser beam in a certain direction. Given the position of several diagonal mirrors, figure out the path of the laser beam.\n\nYou shine your laser beam from the back of the hall of mirrors (on a computer screen, this will look like the \"bottom\" of the image).\n\nThe first line of input contains two space-separated integers $n$, $m$, and $x$. $n$ and $m$ represent the number of rows and columns, respectively, and the number $x$ represents the index on the bottom row that you start shining the laser pointer at (with 0-based indices). The next $n$ lines contain $m$ characters representing the hall of mirrors. If a position does not contain a mirror, it will be pictured as a single dot. If it does have a mirror, it will be represented with either a forward slash (\"/\") or a backslash, which represents the direction that it reflects light in. See the example cases if you are confused on this.\n\nOutput the given input matrix, however, replace any positions without a mirror that the laser pointer shines through horizontally with a hyphen, and replace any positions without a mirror that the laser pointer shines through vertically with a pipe (\"|\"), above the ENTER key on a keyboard. If the laser pointer travels through a space in both directions, replace the dot in that position with a plus symbol (\"+\").\n\n## Input\n\nThe first line of input contains two space-separated integers $n$, $m$, and $x$. $n$ and $m$ represent the number of rows and columns, respectively, and the number $x$ represents the index on the bottom row that you start shining the laser pointer at (with 0-based indices). The next $n$ lines contain $m$ characters representing the hall of mirrors. If a position does not contain a mirror, it will be pictured as a single dot. If it does have a mirror, it will be represented with either a forward slash (\"/\") or a backslash, which represents the direction that it reflects light in. See the example cases if you are confused on this.\n\n## Output\n\nOutput the given input matrix, however, replace any positions without a mirror that the laser pointer shines through horizontally with a hyphen, and replace any positions without a mirror that the laser pointer shines through vertically with a pipe (\"|\"), above the ENTER key on a keyboard. If the laser pointer travels through a space in both directions, replace the dot in that position with a plus symbol (\"+\").\n\n[samples]","is_translate":false,"language":"English"},{"statement_type":"Markdown","content":"**Definitions**  \nLet $ n, m, x \\in \\mathbb{Z} $, where $ n $ is the number of rows, $ m $ is the number of columns, and $ x \\in \\{0, \\dots, m-1\\} $ is the 0-based starting column index on the bottom row.  \nLet $ G \\in \\{ \\text{`.`}, \\text{`/`}, \\text{`\\`'} \\}^{n \\times m} $ be the grid representing the hall of mirrors.  \n\n**Constraints**  \n1. $ 1 \\leq n, m \\leq 100 $  \n2. $ 0 \\leq x < m $  \n\n**Objective**  \nSimulate the path of a laser beam starting at position $ (n-1, x) $, traveling upward (positive $ y $-direction), and reflecting upon encountering mirrors:  \n- A `/` mirror reverses direction: $ (\\Delta x, \\Delta y) \\mapsto (-\\Delta y, -\\Delta x) $  \n- A `\\` mirror reverses direction: $ (\\Delta x, \\Delta y) \\mapsto (\\Delta y, \\Delta x) $  \n\nTrack the beam’s trajectory through empty cells (`.`), and annotate them as:  \n- `\\-` if traversed horizontally ($ \\Delta x = \\pm 1, \\Delta y = 0 $)  \n- `|` if traversed vertically ($ \\Delta x = 0, \\Delta y = \\pm 1 $)  \n- `+` if traversed in both directions  \n\nOutput the modified grid with annotations, leaving mirrors (`/`, `\\`) unchanged.","is_translate":false,"language":"Formal"}],"meta":{"iden":"CF10269108","tags":[],"sample_group":[],"created_at":"2026-03-03 11:00:39"}}