Sergey Cherevko исчерпывающе это показал, мне добавить нечего. Я и не добавлял.
Я бы решил её
автоматным программированием.
Что касается сути вашего уточнения, то могу лишь сказать, что техподдержка решает технические вопросы, но никак не вопросы обучения языкам программирования, алгоритмическим подходам и методам проектирования.
Часто, если человеку нужен пример - я могу его сделать, но только не в том случае, когда человек задаёт вопрос в стиле "давайте, рассказывайте, как космические корабли бороздят просторы Большого театра".
Метод программирования всегда выбирается исходя из задачи. Цена ошибки очень велика - выбранный алгоритм может и не позволить решить задачу, если задача изначально была описана некорректно.