Nikita_PyCharm
По Задаче 32
py.user.next
Тут два разных счётчика: n магистральный (для магистрали) и n веточный (для ветки).
Это лишнее действие поскольку в задании не предполагаются закрашенные клетки на магистрали, достаточно посчитать закрашенные клетки в ветках.
Тут страница, где можно смотреть задачи (основная
страница на сайте МФТИ, куда ведут все ссылки от Тимофея, пока что в ауте - 404)
https://mipt-cs.github.io/python3-2017-2018/labs/lab2.htmlЗадачаЗадача (сайт-оригинал)
Как видишь, клетки на главной магистрали, которые можно закрашивать, есть. То, что они не закрашены с самого начала, - это просто ситуация на данном конкретном поле. Так как клетки, пригодные для закрашивания, на главной магистрали есть, я их включил в учёт. При запуске тестов, мы видим, что все поля такие. Но тесты не являются показателем, так как тесты могут быть недостаточными.
Дальше смотрим точный текст задания и условия в нём
Закрасить отмеченные клетки.
В регистр ax записать количество клеток, которые были закрашены ещё до того,
как робот начал двигаться. Количество и размеры коридоров не известны.
Где-то в условиях сказано, что клетки могут быть закрашены изначально только в ветках? Нет, не сказано. Это значит, что допустим случай, когда закрашенной изначально окажется любая закрашиваемая клетка, а такие есть как в ветках, так и на магистрали. Вот исходя из этого мы и принимаем решение, что включить в алгоритм, а не по тестам судим, как там всё устроено. Если вдруг Тимофей в конце добавит ещё один тест, но в котором на магистрали будет закрашена хотя бы одна клетка, то твоя программа неправильно посчитает, а моя правильно посчитает. При этом Тимофей не будет ничего нарушать, добавив этот тест, потому что никто не говорил с самого начала, что клетки могут быть только в ветках (коридорах). Вот это важный момент: смотри на условия задачи, а не на тесты, потому что условия всегда достаточны, а тесты не всегда достаточны.