#P1014. 【中山市第十二届义务教育段学生信息学邀请赛】倍数子串(timestr)

【中山市第十二届义务教育段学生信息学邀请赛】倍数子串(timestr)

问题描述

Jimmy 对数字有着异于常人的热爱。有一天,他随便写出来一个数字——0432004320,然后开始对着这个数字写写画画。他发现,从这个数字中随便选出连续的一段(Jimmy 把这个称为​连续子串​),有可能是 44 的倍数,例如 4,04,32,4324,04,32,432 等;也有可能是 55 的倍数,例如 20,32020,320 等。

Jimmy 的老师恰好路过此处,他向正沉迷于自己发现的 Jimmy 提了一个有趣的问题——给定一个指定的数字串,请问有多少连续子串44 或者 55 的倍数呢?

老师还特别提醒他:

  1. 连续子串的开头可以是 00
  2. 两个连续子串只要是从数字串中的不同位置选出来的,它们就算是不同的;
  3. 如果一个连续子串同时是 4455 的倍数,应当只被计算一次哦!

输入

从文件 timestr.in 中读入数据。

一行一个数字串,长度为 nn

输出

输出到文件 timestr.out 中。

一行一个整数,表示所有的连续子串中,为 44 或者 55 的倍数的数量。

样例数据

04320
11
2000
9

样例 1 解释

所有满足题意的连续子串分别为:0,04,0432,04320,4,432,4320,32,320,20,00,04,0432,04320,4,432,4320,32,320,20,0。其中有两个相同的 00,这是因为它们是从数字串中的不同位置选出来的(一个在开头处,一个在结尾处)。

数据范围

对于 10%10\% 的数据,保证 n=1n=1

对于 60%60\% 的数据,保证 1n1031\le n\le 10^3

对于 100%100\% 的数据,保证 1n1061\le n\le 10^6