小红的循环移位
题号:NC273280
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小红拿到了一个数字串,她每次操作可以使得其向左循环移动一位。
将串 s = s_0s_1 . . . s_{n−1} 向左循环移动一位,将得到串s_1 . . . s_{n−1}s_0
小红想知道,使得该数字串变成4的倍数,需要最少操作多少次?(可以包含前导零)

输入描述:

一个数字串,长度不超过10^5

输出描述:

如果无法达成目的,则输出-1。
否则输出一个整数,代表最少的操作次数。
示例1

输入

复制
201

输出

复制
1

说明

操作一次,数字串变成012,是4的倍数。
示例2

输入

复制
135

输出

复制
-1

说明

无论操作多少次,该字符串都是奇数,不可能是4的倍数。