Выделение двух алгоритмов: полный перебор и оптимизированный