[GESP样题 六级] 亲朋数
题目描述
给定一串长度为 LLL、由数字 0∼90\sim 90∼9 组成的数字串 SSS。容易知道,它的连续子串儿共有 L(L+1)2\frac{L(L + 1)}22L(L+1) 个。如果某个子串对应的数(允许有前导零)是 ppp 的倍数,则称该子串为数字串 SSS 对于 ppp 的亲朋数。
例如,数字串 SSS 为“ 123421234212342 ”、ppp 为 222,则在 151515 个连续子串中,亲朋数有“ 121212 ”、“ 123412341234 ”、“ 123421234212342 ”、“ 222 ”、“ 234234234 ”、“ 234223422342 ”、“ 343434 ”、“ 342342342 ”、“ 444 ”、“ 424242 ”、“ 222 ”等共 111111 个。注意其中“ 222 ”出现了 222 次,但由于其在 SSS 中的位置不同,记为不同的亲朋数。
现在,告诉你数字串 SSS 和正整数 ppp ,你能计算出有多少个亲朋数吗?
输入格式
输入的第一行,包含一个正整数 ppp。约定 2≤p≤1282 \leq p \leq 1282≤p≤128。
输入的第二行,包含一个长为 LLL 的数字串 SSS。约定 1≤L≤1061 \leq L \leq 10^61≤L≤106。
输出格式
输出一行一个整数表示答案。
样例 #1
样例输入 #1
2
102
样例输出 #1
5
样例 #2
样例输入 #2
2
12342
样例输出 #2
11
提示
样例 1 解释
555 个亲朋数,分别 101010、102102102、000、020202、222。
Scratch实现
后续
接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容