#2213. New Skateboard
New Skateboard
Description
B. New Skateboard
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
马克斯想买一块新滑板。他计算了买一块新滑板所需的钱。他把计算器放在地板上,去向父母要钱。与此同时,他的弟弟优素福来了,开始随意按钥匙。不幸的是马克斯忘记了他计算的数字。他只知道这个数字可以被4整除。
你会得到一个由数字组成的字符串s(优素福随机按键后计算器显示屏上的数字)。你的任务是找出可被4整除的子串的数目。子字符串可以从零开始。
字符串的子字符串是连续字符的非空序列。
例如,如果字符串s是124,那么我们有四个子字符串可以被4整除:12、4、24和124。对于字符串04,答案是三:0,4,04。
由于输入/输出可以达到大的大小,建议使用快速输入/输出方法:例如,在C++中更喜欢使用GET/SCANF/PrimTF而不是GETLION/CIN/CAUT,而更喜欢使用BuffReDeReald/PrrtWrrter代替扫描仪/ Sypult.java。
输入
唯一一行包含字符串s(1≤|S≤3e5). 字符串s只包含0到9之间的数字。
输出
打印整数a− 字符串s中可被4整除的子字符串的数目。
请注意,答案可能很大,因此应该使用64位整数类型来存储它。在C++中,可以使用长长整数类型,在java中可以使用长整数类型。
Examples
Input
124
Output
4
Input
04
Output
3
Input
5810438174
Output
9