{"problem":{"name":"F. Robot in the Maze","description":{"content":"В некоторых комнатах лабиринта n × n расставлены указатели «север», «юг», «запад» и «восток». Остальные комнаты пусты. Робот стартует с некоторого поля и следует по указателям до тех пор, пока не выйд","description_type":"Markdown"},"platform":"Codeforces","limit":{"time_limit":2000,"memory_limit":262144},"difficulty":"None","is_remote":true,"is_sync":true,"sync_url":null,"sign":"CF10157F"},"statements":[{"statement_type":"Markdown","content":"В некоторых комнатах лабиринта n × n расставлены указатели «север», «юг», «запад» и «восток». Остальные комнаты пусты. Робот стартует с некоторого поля и следует по указателям до тех пор, пока не выйдет из лабиринта или не попадёт на поле, в котором нет указателя. Стены в лабиринте отсуствуют, то есть робот может перейти на любое соседнее по стороне поле (или выйти из лабиринта, если он пошёл с края доски в соответствующую сторону).\n\nТребуется выяснить, что произойдёт с роботом: зациклится ли он, покинет ли доску или придёт на какое-то свободное поле доски (в этом случае требуется указать, на какое именно).\n\nПервая строка входных данных содержит одно целое число n, задающее размер лабиринта (1 ≤ n ≤ 100).\n\nКаждая из последующих n строк состоит из n символов, каждый символ описывает одну комнату. Если символ равен '_N_', двигаться надо на север, если символ равен '_E_' — на восток, если символ равен '_S_' — на юг, если символ равен '_W_' — на запад, если символ равен '_._', то в комнате нет указателя. Первая строка является самой северной, первый столбец — самым западным.\n\nВ последней строке содержатся два целых числа R и C (1 ≤ R, C ≤ n) — номер (начиная с единицы) строки и столбца комнаты, из которой стартует робот.\n\nЕсли робот в результате движения по стрелке выходит из лабиринта, выведите 0, если он зацикливается, выведите  - 1, если он останавливается в какой-то комнате внутри лабиринта, выведите два целых числа — номер (начиная с 1) строки и столбца комнаты, в которой остановится робот.\n\n## Входные Данные\n\nПервая строка входных данных содержит одно целое число n, задающее размер лабиринта (1 ≤ n ≤ 100).Каждая из последующих n строк состоит из n символов, каждый символ описывает одну комнату. Если символ равен '_N_', двигаться надо на север, если символ равен '_E_' — на восток, если символ равен '_S_' — на юг, если символ равен '_W_' — на запад, если символ равен '_._', то в комнате нет указателя. Первая строка является самой северной, первый столбец — самым западным.В последней строке содержатся два целых числа R и C (1 ≤ R, C ≤ n) — номер (начиная с единицы) строки и столбца комнаты, из которой стартует робот.\n\n## Выходные Данные\n\nЕсли робот в результате движения по стрелке выходит из лабиринта, выведите 0, если он зацикливается, выведите  - 1, если он останавливается в какой-то комнате внутри лабиринта, выведите два целых числа — номер (начиная с 1) строки и столбца комнаты, в которой остановится робот.\n\n## Примеры\n\nВходные данные5NNNNNWEESEEN.SEWNWWESSSSS3 3Выходные данные3 3Входные данные5NNNNNWEESEEN.SEWNWWESSSSS2 2Выходные данные-1Входные данные5NNNNNWEESEEN.SEWNWWESSSSS3 1Выходные данные-1Входные данные5NNNNNWEESEEN.SEWNWWESSSSS1 3Выходные данные0\n\n[samples]","is_translate":false,"language":"English"},{"statement_type":"Markdown","content":"**Definitions**  \nLet $ n \\in \\mathbb{Z} $ be the size of the grid ($1 \\leq n \\leq 100$).  \nLet $ G = (g_{i,j})_{1 \\leq i,j \\leq n} $ be the grid, where each $ g_{i,j} \\in \\{ \\text{'N'}, \\text{'E'}, \\text{'S'}, \\text{'W'}, \\text{'.'} \\} $ denotes the direction or absence of a pointer in cell $ (i,j) $.  \nLet $ (R, C) \\in \\{1, \\dots, n\\}^2 $ be the starting position of the robot.\n\n**Transition Function**  \nDefine the movement function $ \\delta: \\{1, \\dots, n\\}^2 \\to \\{1, \\dots, n\\}^2 \\cup \\{\\text{out}, \\text{stop}\\} $:  \n- If $ g_{i,j} = \\text{'N'} $, then $ \\delta(i,j) = (i-1, j) $ if $ i > 1 $, else $ \\text{out} $.  \n- If $ g_{i,j} = \\text{'S'} $, then $ \\delta(i,j) = (i+1, j) $ if $ i < n $, else $ \\text{out} $.  \n- If $ g_{i,j} = \\text{'W'} $, then $ \\delta(i,j) = (i, j-1) $ if $ j > 1 $, else $ \\text{out} $.  \n- If $ g_{i,j} = \\text{'E'} $, then $ \\delta(i,j) = (i, j+1) $ if $ j < n $, else $ \\text{out} $.  \n- If $ g_{i,j} = \\text{'.'} $, then $ \\delta(i,j) = \\text{stop} $.\n\n**Objective**  \nSimulate the path $ (r_0, c_0) = (R, C) $, $ (r_{k+1}, c_{k+1}) = \\delta(r_k, c_k) $ for $ k \\geq 0 $, until one of the following occurs:  \n- $ \\delta(r_k, c_k) = \\text{out} $: output $ 0 $.  \n- $ \\delta(r_k, c_k) = \\text{stop} $: output $ r_k, c_k $.  \n- A state $ (r_k, c_k) $ repeats: output $ -1 $.","is_translate":false,"language":"Formal"}],"meta":{"iden":"CF10157F","tags":[],"sample_group":[],"created_at":"2026-03-03 11:00:39"}}