QOJ.ac

QOJ

Limite de temps : 1 s Limite de mémoire : 2048 MB Points totaux : 100

#14440. Алгоритм Карла для прохождения лабиринта

Statistiques

Муравей Карл вернулся! После путешествий по пирамидам Карл решил изучить некоторые алгоритмы и придумал новый алгоритм для решения лабиринтов на сетке. Он работает следующим образом:

  • Карл начинает движение где-то в лабиринте, будучи повернутым вправо, и хочет попасть в целевую клетку.
  • Пока Карл еще не находится в целевой клетке:
    • Если Карл может повернуться влево на 90 градусов и перед ним окажется пустая клетка, он повернется влево на 90 градусов, а затем переместится вперед на одну клетку.
    • В противном случае, если Карл может переместиться вперед на одну клетку, он сделает это.
    • В противном случае он повернется вправо на 90 градусов.

Карл хочет знать, работает ли этот алгоритм. Помогите ему это проверить!

Входные данные

Первая строка входных данных содержит два целых числа $r$ и $c$ ($1 \le r, c \le 50$), обозначающих размер лабиринта (количество строк и столбцов). Клетка $(1, 1)$ является левым верхним углом лабиринта.

Следующая строка содержит два целых числа $i_{start}$ и $j_{start}$ ($1 \le i_{start} \le r, 1 \le j_{start} \le c$) — начальное положение Карла в строке $i_{start}$ и столбце $j_{start}$.

Следующая строка содержит два целых числа $i_{end}$ и $j_{end}$ ($1 \le i_{end} \le r, 1 \le j_{end} \le c$) — желаемое конечное положение Карла в строке $i_{end}$ и столбце $j_{end}$. Гарантируется, что начальное и конечное положения Карла различны.

Каждая из следующих $r$ строк содержит строку из $c$ символов, состоящую только из 0 или 1. Если символ равен 1, то в этой клетке находится препятствие, и через нее нельзя пройти; в противном случае клетка пуста. Гарантируется, что начальная и конечная клетки Карла пусты.

Выходные данные

Выведите единственное целое число: 1, если Карл может добраться от начальной точки до конечной, и 0 в противном случае.

Примеры

Входные данные 1

4 5
1 1
4 5
00111
10100
10111
10000

Выходные данные 1

1

Входные данные 2

3 3
1 1
3 3
001
001
110

Выходные данные 2

0

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.