Олимпиадный тренинг

Задача . E. Делимость на 25


Задано целое число \(n\) от \(1\) до \(10^{18}\), записанное без лидирующих нулей.

За один ход можно поменять в нём любую такую пару соседних цифр местами, что в результате получается число без лидирующих нулей. Иными словами, после каждого хода должно получаться число без лидирующих нулей.

Какое наименьшее количество ходов надо последовательно совершить, чтобы получилось число, которое делится на \(25\)? Выведите -1, если не существует такой последовательности ходов, которая приводит к числу, кратному \(25\).

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

В первой строке входных данных задано целое число \(n\) (\(1 \le n \le 10^{18}\)). Гарантируется, что первая (левая) цифра числа \(n\) отлична от нуля.

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

Если не существует такой последовательности ходов, которая приводит к числу, кратному \(25\), выведите -1. В противном случае выведите минимальное количество ходов в такой последовательности.

Обратите внимание, что вы можете менять местами только соседние цифры.

Примечание

В первом тестовом примере одна из возможных последовательностей ходов следующая: 5071 \(\rightarrow\) 5701 \(\rightarrow\) 7501 \(\rightarrow\) 7510 \(\rightarrow\) 7150.


Примеры
Входные данныеВыходные данные
1 5071
4
2 705
1
3 1241367
-1

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя