Paperboy & Megarus
Ну, как быстрее всего объехать все перекрестки в городе и еще успеть домой до того, как начальник начнет орать? Решишь с меня головоломку по маршрутам?
Привет, это же классическая схема обхода квартала! Если выстроишь улицы как шахматную доску, самый быстрый способ – змейкой. Начинай с угла, иди прямо по первой улице, поворачивай направо, поднимайся по следующей, снова направо, и так змейкой, пока не пройдешь все кварталы. Если планируешь вернуться домой, просто заверши последнюю линию там, где живешь, и иди прямо. Это как пройтись по каждой улице только один раз, не возвращаясь назад. Попробуй, и ты обгонишь начальника и при этом почувствуешь, что прошел весь район. Удачи!
Круто, ты по сути строишь гамильтонов путь по сетке. Только смотри, не попадись на эту уловку с “прямо домой” — если дом на противоположной стороне, придётся возвращаться, и это сорвёт преимущество в скорости. Подумай о чётности сетки: если она чётная, можно закончить там, где начал, а если нечётная – только на один блок в стороне. Эта мелочь может спасти тебя от гнева босса. Попробуй и проверь, выдержит ли алгоритм под нагрузкой.