#iai25t4. 三倍子串(Triple Substring)

三倍子串(Triple Substring)

三倍子串(Triple Substring)

题目描述

给定一个十进制正整数 nn,请问可以从 nn 中截取多少种不同的子串,使得子串构成的数字是 33 的倍数。

例如:当 n=1234n=1234 时,有且仅有 331212123123234234 这四个子串是 33 的倍数。

输入格式

单个整数:表示输入的数字 nn

输出格式

单个整数:表示 33 的倍数的子串数量。

样例输入 #1

95764

样例输出 #1

6

样例说明 #1

子串 6、9、57、576、957、9576 是 3 的倍数。

样例输入 #2

1111

样例输出 #2

2

样例说明 #2

有两个 111 都是 3 的倍数。

数据范围

  • 对于 20% 的数据,1n1091 \le n \le 10^9
  • 对于 50% 的数据,1n101001 \le n \le 10^{100}
  • 对于 70% 的数据,1n1010001 \le n \le 10^{1000}
  • 对于 100% 的数据,1n101000001 \le n \le 10^{100000}

知识点与难度

本题涉及的知识点从属于 GESP 5级,难度等级:⭐⭐⭐


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~3 题面两组样例 + 最小 1 位数字
1 20 4~8 小规模、全 1/全 3/模余相等等特殊性质
2 15 9~11 Hack:长度上限 100001、所有前缀同余、连续 0
3 30 12~20 中大规模(长度 1000~100000)
4 25 21~25 随机回归