luogu P1822 魔法指纹

背景:

杭二学习 ing... \text{ing...} ing...

题目传送门:

https://www.luogu.org/problem/P1822

题意:

给定一种计算一个数的方式,求 l l l r r r区间的数的贡献和。

思路:

考虑暴力,这种方式 log ⁡ 2 \log^2 log2即可求出每一个数的贡献,因此总时间复杂度为 Θ ( r log ⁡ 2 r ) \Theta(r\log^2r) Θ(rlog2r)(仔细想想发现更小)。
考虑到 r ≤ 1 0 9 r≤10^9 r109,因此我们可以让它在本地跑出结果。
然后你搞一个分块, 1 0 5 10^5 105为一块,共 1 0 4 10^4 104块,按块搞一个前缀和, Θ ( r ) \Theta(\sqrt{r}) Θ(r )求解即可。

代码:

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
	int l,r;
	const int tot[100010]=
{498,274,183,66,57,57,67,182,274,387,238,274,67,39,26,17,11,28,96,248,119,153,183,42,41,26,20,28,31,107,22,54,67,66,31,41,25,26,13,12,12,18,65,42,57,31,39,30,13,9,
9,13,30,39,31,57,42,65,18,12,12,13,26,25,41,31,66,67,54,23,106,31,28,20,26,41,43,183,153,118,248,96,28,11,17,26,39,67,274,238,506,233,64,12,12,17,25,66,152,387,
187,153,27,13,7,4,2,6,116,351,238,274,67,39,26,17,11,28,96,248,27,153,25,42,16,9,8,2,4,17,16,54,32,10,17,41,16,19,9,6,7,18,27,12,10,13,21,30,10,6,
5,13,20,15,5,7,4,21,13,12,8,13,14,13,4,3,1,2,13,13,37,31,12,11,5,2,3,4,6,14,130,96,20,8,7,3,0,4,56,22,295,233,9,9,6,4,1,5,92,273,
77,44,65,16,12,6,4,6,17,131,238,94,67,21,9,7,5,3,16,98,119,153,183,42,41,26,20,28,31,107,13,42,67,16,31,16,13,10,7,6,8,13,65,16,14,17,39,20,8,4,
6,10,30,21,13,10,12,27,18,7,8,13,26,16,9,5,3,3,19,16,36,22,28,16,9,4,4,3,4,8,26,50,28,6,12,5,2,2,7,8,99,94,64,5,9,7,3,6,16,79,
5,21,27,25,9,9,3,3,5,3,119,19,32,39,16,12,7,6,7,13,27,153,25,42,16,9,8,2,4,17,22,54,67,66,31,41,25,26,13,12,4,13,27,42,10,31,21,18,7,3,
4,8,20,39,17,14,16,65,13,8,6,10,14,25,16,13,10,10,42,22,9,16,12,20,16,9,4,6,4,32,6,17,20,11,9,9,7,2,2,6,4,10,9,12,7,12,5,7,6,3,
3,4,21,16,17,7,9,5,2,1,30,8,10,21,26,9,8,5,5,4,119,44,24,16,41,16,11,6,5,16,13,42,67,16,31,16,13,10,7,6,12,18,65,42,57,31,39,30,13,9,
3,7,18,21,31,10,42,27,13,4,6,9,19,16,41,17,10,32,54,16,14,10,18,16,26,16,12,8,21,27,3,6,10,6,17,16,15,3,2,10,2,1,10,5,12,9,13,12,4,1,
1,4,12,13,9,12,5,10,1,2,10,2,3,15,16,17,6,10,6,3,27,21,8,12,16,26,16,18,10,14,16,54,32,10,17,41,16,19,9,6,4,13,27,42,10,31,21,18,7,3,
9,13,30,39,31,57,42,65,18,12,6,7,10,13,16,31,16,67,42,13,16,5,6,11,16,41,16,24,45,118,4,5,5,8,9,26,21,10,8,30,1,2,5,9,7,17,16,21,4,3,
3,6,7,5,12,7,12,9,10,4,6,2,2,7,9,9,11,20,17,6,32,4,6,4,9,16,20,12,16,9,22,42,10,10,13,16,25,14,10,6,8,13,65,16,14,17,39,20,8,4,
3,7,18,21,31,10,42,27,13,4,12,13,26,25,41,31,66,67,54,22,17,4,2,8,9,16,42,26,152,27,13,7,6,7,12,16,39,32,20,118,3,5,3,3,9,9,25,27,21,6,
78,17,5,3,7,9,6,63,94,100,7,7,2,2,5,12,6,28,50,26,8,4,3,4,4,9,16,28,22,36,16,19,3,3,5,9,16,26,13,8,7,18,27,12,10,13,21,30,10,6,
4,8,20,39,17,14,16,65,13,8,6,7,10,13,16,31,16,67,42,14,106,31,28,20,26,41,43,183,153,118,98,16,3,5,7,9,21,68,93,238,132,16,6,4,6,12,16,65,45,76,
273,93,4,1,4,6,9,9,233,295,22,56,4,0,3,7,8,20,96,131,13,6,4,3,2,5,11,12,31,37,13,13,2,1,3,4,13,14,13,8,12,13,21,4,7,5,15,20,13,5,
6,10,30,21,13,10,12,27,18,7,6,9,19,16,41,17,10,32,54,16,17,4,2,8,9,16,42,26,152,27,248,96,28,11,17,26,39,67,274,238,351,117,5,2,4,7,13,28,152,187,
789,585,28,1,2,4,3,10,94,506,104,292,38,0,1,4,7,10,50,248,19,17,28,2,0,3,8,18,22,107,9,9,2,0,0,2,5,19,13,12,7,13,12,4,3,3,7,18,10,9,
5,13,20,15,5,7,4,21,13,12,6,10,14,25,16,13,10,10,42,22,16,5,6,11,16,41,16,24,45,118,98,16,3,5,7,9,21,68,93,238,506,233,64,12,12,17,25,66,152,387,
154,44,12,2,1,0,0,0,87,326,238,94,67,21,9,7,5,3,16,98,15,44,10,16,6,16,6,1,3,1,2,15,10,7,13,9,5,6,10,4,2,4,12,4,5,5,8,4,5,2,
0,3,4,3,3,2,4,8,6,0,0,1,0,2,2,0,0,2,6,6,2,1,1,0,2,0,2,1,16,5,72,3,0,1,1,1,0,38,96,104,297,74,0,0,1,1,1,1,584,502,
187,153,27,13,7,4,2,6,116,351,238,274,67,39,26,17,11,28,96,248,27,153,25,42,16,9,8,2,4,17,16,54,32,10,17,41,16,19,9,6,7,18,27,12,10,13,21,30,10,6,
5,13,20,15,5,7,4,21,13,12,8,13,14,13,4,3,1,2,13,13,37,31,12,11,5,2,3,4,6,14,130,96,20,8,7,3,0,4,56,22,295,233,9,9,6,4,1,5,92,273,
21,44,11,16,4,2,0,0,1,11,238,94,67,21,9,7,5,3,16,98,9,44,10,16,6,3,2,1,1,2,13,42,67,16,31,16,13,10,7,6,2,13,11,16,6,17,6,20,4,1,
6,5,3,10,13,7,12,12,5,4,4,4,4,3,6,5,3,3,12,4,6,1,2,1,2,4,4,2,4,6,6,0,0,0,1,3,2,2,5,7,8,2,0,0,0,2,2,2,16,28,
3,15,27,8,9,4,2,1,2,3,119,19,32,39,16,12,7,6,7,13,27,26,25,9,16,8,3,0,1,1,6,19,13,2,4,9,3,5,3,2,0,7,27,9,10,8,21,10,2,1,
4,8,20,39,17,14,16,65,13,8,4,7,14,8,16,8,4,9,42,6,6,16,6,3,2,9,3,4,2,32,6,15,4,4,2,8,7,1,2,6,4,5,1,0,0,2,3,7,6,1,
2,3,12,16,3,7,3,3,1,0,30,8,10,21,26,9,8,5,5,4,15,44,10,16,6,16,6,1,3,1,13,15,0,9,3,9,13,5,7,3,1,8,12,3,1,3,8,9,3,2,
2,4,18,10,3,7,5,12,13,2,2,2,6,16,6,17,5,32,11,16,14,10,18,16,26,16,12,8,21,27,3,5,5,6,3,16,8,2,0,9,2,0,10,0,3,5,13,8,2,0,
0,3,9,10,9,2,5,4,1,1,10,2,3,15,16,17,6,10,6,3,27,15,5,10,16,7,16,5,3,4,6,7,13,10,4,4,4,19,7,5,4,7,3,2,2,1,2,10,7,2,
1,6,7,4,1,1,2,11,6,2,4,5,10,10,2,1,2,0,3,7,3,3,4,11,2,4,3,24,18,19,4,3,5,6,9,7,21,9,7,27,1,2,5,9,7,17,16,21,4,3,
2,2,4,2,4,7,2,9,6,3,6,2,2,7,9,9,11,20,17,6,9,3,4,2,6,16,6,12,6,5,2,15,10,7,13,9,5,6,10,4,2,4,3,3,6,3,1,4,4,4,
3,4,4,0,1,1,0,2,6,2,4,5,5,2,1,1,0,3,3,6,5,1,2,7,2,1,0,2,0,1,9,5,4,7,4,2,1,11,12,25,3,5,1,1,9,5,5,12,21,5,
11,1,0,1,2,4,5,3,94,15,7,7,2,2,5,12,6,28,50,26,5,3,1,1,2,8,16,4,22,12,6,19,2,2,3,9,4,5,6,8,2,5,3,10,10,8,2,3,5,3,
2,4,1,1,1,4,2,3,1,2,6,5,3,2,0,1,0,0,0,5,5,5,1,2,1,1,0,1,2,6,13,10,3,4,2,1,0,0,2,0,4,2,3,4,2,2,0,3,3,30,
111,11,1,0,1,2,3,9,56,295,22,56,4,0,3,7,8,20,96,131,5,2,1,1,2,3,6,12,6,37,13,11,1,0,2,4,13,6,7,4,2,4,12,4,5,5,8,4,5,2,
0,3,0,0,2,7,6,2,4,0,6,2,0,0,0,1,0,3,0,1,17,1,1,0,0,0,0,0,6,3,59,37,3,4,1,1,0,0,55,12,18,39,5,1,3,2,0,0,6,5,
555,260,1,0,1,1,2,4,94,225,104,292,38,0,1,4,7,10,50,248,1,1,1,0,0,2,3,5,22,12,6,6,0,0,0,2,3,19,6,3,2,7,12,3,2,2,7,10,5,1,
0,4,1,4,3,7,3,11,1,2,4,2,1,0,0,1,4,3,0,0,6,3,1,1,0,0,0,3,2,4,98,10,1,2,1,0,0,39,14,64,274,179,3,2,0,1,1,0,134,330,
79,17,21,3,2,0,0,0,4,114,80,94,18,21,8,2,2,0,3,12,119,44,24,16,41,16,11,6,5,16,6,42,9,4,8,16,8,14,7,4,3,5,21,3,4,3,15,7,6,2,
1,5,10,7,2,2,3,12,7,2,1,2,3,3,2,0,0,2,9,6,2,1,1,3,3,0,1,2,12,18,4,2,2,2,2,1,0,3,4,43,63,15,0,0,1,1,0,29,332,144,
187,153,27,13,7,4,2,6,116,351,119,55,32,8,3,1,1,1,4,104,27,153,25,42,16,9,8,2,4,17,16,11,32,5,17,6,16,6,2,2,4,5,12,12,7,13,10,3,5,6,
2,5,4,8,5,5,4,12,4,2,1,4,0,5,4,3,0,2,11,5,1,1,1,1,3,2,3,2,6,5,7,3,1,0,2,2,0,4,21,22,48,82,0,0,0,1,1,4,92,147,
77,44,65,16,12,6,4,6,17,131,238,94,67,21,9,7,5,3,16,98,119,153,183,42,41,26,20,28,31,107,13,42,67,16,31,16,13,10,7,6,8,13,65,16,14,17,39,20,8,4,
6,10,30,21,13,10,12,27,18,7,8,13,26,16,9,5,3,3,19,16,36,22,28,16,9,4,4,3,4,8,26,50,28,6,12,5,2,2,7,8,99,94,64,5,9,7,3,6,16,79,
5,21,12,5,5,9,1,1,5,3,119,11,32,6,16,4,2,1,0,3,27,153,25,42,16,9,8,2,4,17,6,12,32,4,17,6,2,2,2,1,4,13,27,42,10,31,21,18,7,3,
1,4,20,6,17,6,16,11,13,2,4,10,6,5,9,13,7,10,15,2,9,6,2,3,2,6,4,4,4,9,5,9,1,2,1,2,3,2,1,6,3,4,0,0,0,1,2,7,6,2,
3,2,21,4,3,2,9,2,1,0,27,7,9,21,7,9,6,5,3,4,119,44,24,16,41,16,11,6,5,16,7,42,18,16,8,16,10,3,4,2,2,6,21,3,4,4,15,7,6,1,
1,2,10,21,8,10,9,27,7,0,6,9,19,16,41,17,10,32,54,16,4,3,5,16,7,16,10,5,15,27,3,4,10,3,3,2,15,2,2,8,1,1,4,1,2,2,10,12,4,1,
0,2,8,13,5,3,0,10,0,2,9,0,2,8,16,3,6,5,5,3,27,21,8,12,16,26,16,18,10,14,16,11,32,5,17,6,16,6,2,2,2,13,12,5,7,3,10,18,4,2,
2,3,9,8,3,1,3,12,8,1,3,7,5,13,9,3,9,0,15,13,1,3,1,6,16,6,16,10,44,15,4,5,5,8,9,26,21,10,8,30,0,1,3,3,7,3,16,12,3,2,
2,4,5,3,12,2,0,6,10,4,5,1,0,3,8,9,2,20,15,6,32,4,6,4,9,16,20,12,16,9,6,42,9,4,8,16,8,14,7,4,8,5,8,3,14,4,1,7,8,2,
2,7,10,2,1,2,2,3,7,4,4,2,6,3,3,1,0,3,6,6,2,1,1,8,8,2,2,2,1,2,4,4,3,1,12,2,1,13,20,36,3,2,1,2,4,9,8,27,15,3,
12,1,0,2,6,9,0,2,24,100,5,3,0,0,3,4,6,5,50,21,8,4,3,4,4,9,16,28,22,36,16,12,2,2,2,6,16,3,13,4,4,5,12,12,7,13,10,3,5,6,
4,4,4,1,3,6,3,3,4,2,2,7,5,5,1,1,0,1,0,5,3,3,2,2,3,1,1,1,0,7,5,4,1,5,6,2,0,1,2,0,11,0,1,2,6,4,3,3,4,21,
11,4,1,0,2,2,9,6,6,121,3,15,0,0,2,2,6,20,14,131,13,6,4,3,2,5,11,12,31,37,7,8,0,0,1,2,10,14,4,8,3,5,21,3,4,3,15,7,6,2,
3,5,3,2,8,10,10,3,5,2,6,7,3,0,1,1,1,3,0,1,11,4,1,3,1,0,0,1,1,1,6,7,6,2,2,1,1,0,3,7,6,14,2,2,3,2,2,1,1,4,
173,3,0,1,1,3,1,10,24,95,7,166,0,0,1,1,2,5,50,83,19,17,28,2,0,3,8,18,22,107,6,3,0,0,0,2,2,6,13,3,4,13,8,1,2,2,3,18,5,2,
2,5,4,8,5,5,4,12,4,2,4,4,0,1,1,2,7,3,0,0,16,5,1,1,0,0,1,2,0,2,42,16,1,3,2,0,0,1,3,4,91,80,25,1,2,1,1,0,7,69,
1,4,12,5,0,2,0,0,0,1,11,29,0,10,9,6,3,1,4,5,15,44,10,16,6,16,6,1,3,1,22,42,10,10,13,16,25,14,10,6,1,13,12,2,1,2,8,20,1,5,
2,5,18,3,2,2,1,8,13,4,3,4,6,5,2,0,0,0,6,9,3,1,2,7,3,0,2,1,3,5,0,0,4,2,0,1,0,0,0,7,1,2,1,0,3,1,1,0,3,2,
187,26,27,10,2,1,0,1,11,117,37,5,13,15,1,2,2,1,3,13,27,26,25,9,16,8,3,0,1,1,16,54,32,10,17,41,16,19,9,6,7,5,27,10,3,8,21,7,10,3,
2,6,7,15,3,4,3,21,5,3,4,6,6,10,4,2,0,1,13,7,1,2,1,2,1,2,3,2,6,13,3,0,1,1,2,3,0,0,10,19,4,2,0,0,0,2,0,4,7,13,
21,44,11,16,4,2,0,0,1,11,238,94,67,21,9,7,5,3,16,98,9,44,10,16,6,3,2,1,1,2,13,42,67,16,31,16,13,10,7,6,2,13,11,16,6,17,6,20,4,1,
6,5,3,10,13,7,12,12,5,4,4,4,4,3,6,5,3,3,12,4,6,1,2,1,2,4,4,2,4,6,6,0,0,0,1,3,2,2,5,7,8,2,0,0,0,2,2,2,16,28,
5,21,27,25,9,9,3,3,5,3,119,19,32,39,16,12,7,6,7,13,27,153,25,42,16,9,8,2,4,17,22,54,67,66,31,41,25,26,13,12,4,13,27,42,10,31,21,18,7,3,
4,8,20,39,17,14,16,65,13,8,6,10,14,25,16,13,10,10,42,22,9,16,12,20,16,9,4,6,4,32,6,17,20,11,9,9,7,2,2,6,4,10,9,12,7,12,5,7,6,3,
2,4,12,3,0,3,3,5,1,1,30,6,10,10,3,5,8,3,4,4,15,44,10,16,6,16,6,1,3,1,13,42,67,16,31,16,13,10,7,6,0,2,12,16,2,17,8,4,2,1,
3,7,18,21,31,10,42,27,13,4,2,2,6,16,6,17,5,32,11,16,12,9,18,7,3,9,12,8,21,10,3,6,5,5,0,2,8,3,0,10,2,0,4,1,2,1,5,8,4,0,
1,4,12,10,2,2,1,4,1,1,8,2,2,15,2,3,3,10,4,3,27,15,5,10,16,7,16,5,3,4,16,54,32,10,17,41,16,19,9,6,0,7,27,9,10,8,21,10,2,1,
1,6,7,15,4,4,3,21,6,2,2,4,3,10,16,8,16,18,42,7,16,5,6,11,16,41,16,24,45,118,4,3,5,6,9,7,21,9,7,27,0,1,2,9,2,3,4,21,2,3,
1,4,7,5,4,3,0,1,6,4,5,2,1,3,9,5,3,4,17,5,9,3,4,2,6,16,6,12,6,5,22,42,10,10,13,16,25,14,10,6,2,13,11,16,6,17,6,20,4,1,
2,4,18,10,3,7,5,12,13,2,2,4,5,5,6,3,2,11,12,9,3,2,1,7,9,9,5,12,7,10,3,0,1,2,4,16,6,32,12,118,3,5,3,3,9,9,25,27,21,5,
10,1,1,3,7,4,1,1,8,15,7,3,0,0,1,12,3,2,12,26,5,3,1,1,2,8,16,4,22,12,16,19,3,3,5,9,16,26,13,8,7,5,27,10,3,8,21,7,10,3,
2,8,7,1,4,14,3,8,5,8,4,5,10,10,2,1,2,0,3,7,2,2,1,3,1,3,2,3,2,11,4,3,1,4,7,8,2,1,12,5,17,1,0,0,2,12,4,8,18,76,
3,0,1,1,0,6,3,1,1,16,4,4,0,0,2,6,8,4,6,26,5,2,1,1,2,3,6,12,6,37,13,13,2,1,3,4,13,14,13,8,1,13,12,2,1,2,8,20,1,5,
6,5,3,10,13,7,12,12,5,4,6,9,6,3,2,3,5,11,3,4,5,1,2,7,2,1,0,2,0,1,1,2,3,4,0,3,3,3,1,5,3,2,1,1,4,6,5,2,1,8,
2,0,1,1,1,3,3,4,8,1,4,2,0,0,1,2,1,10,12,9,1,1,1,0,0,2,3,5,22,12,9,9,2,0,0,2,5,19,13,12,7,7,9,1,2,1,3,10,10,2,
2,6,7,15,3,4,3,21,5,3,6,7,6,3,2,8,10,9,3,2,6,5,4,2,0,1,2,8,3,3,13,10,3,4,2,1,0,0,2,0,0,2,3,3,0,2,1,3,2,0,
1,2,11,3,4,0,2,0,0,0,6,12,0,2,8,7,4,1,3,4,20,17,24,3,4,2,11,4,3,3,6,42,9,4,8,16,8,14,7,4,12,13,21,4,7,5,15,20,13,5,
2,10,10,3,1,2,1,9,7,7,3,6,19,3,2,0,0,0,6,6,1,2,5,8,3,0,1,1,2,12,0,0,7,1,4,1,0,0,0,3,0,2,1,2,3,2,0,4,0,1,
114,8,12,13,6,3,0,1,2,11,26,1,11,8,5,0,4,0,1,8,10,8,11,5,9,9,7,1,2,3,16,11,32,5,17,6,16,6,2,2,7,18,27,12,10,13,21,30,10,6,
5,1,20,8,2,1,2,12,13,1,4,7,6,13,4,2,0,1,11,13,2,4,2,6,5,2,2,0,4,5,3,0,1,4,6,3,0,0,3,12,4,1,0,0,2,0,1,3,3,6,
77,44,65,16,12,6,4,6,17,131,80,94,18,21,8,2,2,0,3,12,32,17,8,3,9,1,2,1,2,4,7,42,18,16,8,16,10,3,4,2,8,13,65,16,14,17,39,20,8,4,
3,10,7,21,8,3,10,27,5,7,8,6,5,4,9,3,2,2,19,6,12,2,1,2,8,4,3,2,4,8,9,0,0,1,2,1,2,2,3,7,3,2,0,1,0,2,3,6,11,26,
5,21,12,5,5,9,1,1,5,3,119,11,32,6,16,4,2,1,0,3,27,153,25,42,16,9,8,2,4,17,6,12,32,4,17,6,2,2,2,1,4,13,27,42,10,31,21,18,7,3,
1,4,20,6,17,6,16,11,13,2,4,10,6,5,9,13,7,10,15,2,9,6,2,3,2,6,4,4,4,9,5,9,1,2,1,2,3,2,1,6,3,4,0,0,0,1,2,7,6,2,
3,4,21,16,17,7,9,5,2,1,30,8,10,21,26,9,8,5,5,4,119,44,24,16,41,16,11,6,5,16,13,42,67,16,31,16,13,10,7,6,12,18,65,42,57,31,39,30,13,9,
3,7,18,21,31,10,42,27,13,4,6,9,19,16,41,17,10,32,54,16,14,10,18,16,26,16,12,8,21,27,3,6,10,6,17,16,15,3,2,10,2,1,10,5,12,9,13,12,4,1,
0,4,8,5,1,2,1,4,0,2,10,0,3,8,2,0,5,5,6,3,10,21,8,12,9,3,7,18,9,12,16,11,32,5,17,6,16,6,2,2,4,13,27,42,10,31,21,18,7,3,
1,2,4,8,17,2,16,12,2,0,6,7,10,13,16,31,16,67,42,13,1,3,1,6,16,6,16,10,44,15,4,4,3,8,5,3,10,10,6,30,1,1,5,3,3,0,3,12,4,2,
1,6,7,3,2,0,0,1,5,4,6,2,1,7,8,2,4,4,15,6,32,2,4,3,9,2,3,6,16,6,6,42,9,4,8,16,8,14,7,4,8,13,65,16,14,17,39,20,8,4,
1,2,10,21,8,10,9,27,7,0,2,3,5,3,9,4,2,13,19,6,1,1,0,3,8,16,9,26,25,27,13,7,6,7,12,16,39,32,20,118,3,2,1,2,4,9,8,27,15,3,
4,3,1,3,6,1,1,1,2,19,7,2,0,2,5,4,5,1,2,21,6,2,1,1,4,9,7,3,9,36,16,12,2,2,2,6,16,3,13,4,7,18,27,12,10,13,21,30,10,6,
1,4,20,6,17,6,16,11,13,2,3,7,5,13,9,3,9,0,15,13,0,1,1,2,5,6,3,2,4,9,5,4,1,3,6,9,10,1,28,11,11,1,0,0,2,4,16,11,44,21,
3,0,2,0,4,2,2,1,0,9,7,3,0,0,3,7,6,4,1,15,11,4,1,1,2,1,11,6,4,8,7,8,0,0,1,2,10,14,4,8,12,13,21,4,7,5,15,20,13,5,
3,10,7,21,8,3,10,27,5,7,5,7,19,4,4,4,10,13,7,6,2,1,1,8,8,2,2,2,1,2,1,1,4,2,4,1,4,3,1,2,3,2,1,1,3,7,10,3,1,21,
0,0,1,1,1,4,1,4,2,1,2,1,0,0,1,0,7,5,2,4,1,1,1,0,0,2,7,18,9,14,6,3,0,0,0,2,2,6,13,3,7,13,12,4,3,3,7,18,10,9,
5,1,20,8,2,1,2,12,13,1,4,10,6,5,9,13,7,10,15,2,12,5,6,6,2,2,3,10,4,2,5,4,1,5,6,2,0,1,2,0,0,0,3,1,2,0,2,4,0,0,
0,0,4,2,0,2,1,3,0,0,0,2,1,0,2,6,5,1,4,5,2,4,10,3,2,2,6,6,5,12,2,15,10,7,13,9,5,6,10,4,1,13,12,2,1,2,8,20,1,5,
9,10,18,7,3,3,4,12,13,7,3,13,6,2,2,0,0,0,3,6,14,9,18,7,2,0,0,1,1,1,4,2,5,7,0,1,0,0,1,2,1,2,4,1,4,1,1,1,0,0,
21,1,3,10,7,3,1,1,2,3,3,0,3,4,1,4,2,4,1,1,2,1,2,2,2,8,8,1,1,2,6,7,13,10,4,4,4,19,7,5,7,5,27,10,3,8,21,7,10,3,
5,13,20,15,5,7,4,21,13,12,8,4,14,10,2,1,0,0,8,7,8,4,6,11,1,2,1,1,4,11,15,1,4,6,7,3,0,0,3,7,9,0,1,2,2,4,0,2,0,3,
21,44,11,16,4,2,0,0,1,11,11,29,0,10,9,6,3,1,4,5,9,4,2,3,6,5,2,1,1,0,13,15,0,9,3,9,13,5,7,3,2,13,11,16,6,17,6,20,4,1,
6,10,30,21,13,10,12,27,18,7,4,13,3,16,6,2,2,2,12,16,36,9,3,7,9,4,1,1,2,6,21,2,1,5,4,5,2,0,2,7,19,2,1,1,1,6,3,1,3,4,
3,15,27,8,9,4,2,1,2,3,119,19,32,39,16,12,7,6,7,13,27,26,25,9,16,8,3,0,1,1,6,19,13,2,4,9,3,5,3,2,0,7,27,9,10,8,21,10,2,1,
4,8,20,39,17,14,16,65,13,8,4,7,14,8,16,8,4,9,42,6,6,16,6,3,2,9,3,4,2,32,6,15,4,4,2,8,7,1,2,6,4,5,1,0,0,2,3,7,6,1,
2,4,12,3,0,3,3,5,1,1,30,6,10,10,3,5,8,3,4,4,15,44,10,16,6,16,6,1,3,1,13,42,67,16,31,16,13,10,7,6,0,2,12,16,2,17,8,4,2,1,
3,7,18,21,31,10,42,27,13,4,2,2,6,16,6,17,5,32,11,16,12,9,18,7,3,9,12,8,21,10,3,6,5,5,0,2,8,3,0,10,2,0,4,1,2,1,5,8,4,0,
1,4,12,13,9,12,5,10,1,2,10,2,3,15,16,17,6,10,6,3,27,21,8,12,16,26,16,18,10,14,16,54,32,10,17,41,16,19,9,6,4,13,27,42,10,31,21,18,7,3,
9,13,30,39,31,57,42,65,18,12,6,7,10,13,16,31,16,67,42,13,16,5,6,11,16,41,16,24,45,118,4,5,5,8,9,26,21,10,8,30,1,2,5,9,7,17,16,21,4,3,
2,6,7,2,1,0,0,0,4,3,6,1,2,3,2,1,2,1,9,5,9,4,4,4,6,2,3,2,6,9,2,15,10,7,13,9,5,6,10,4,2,13,11,16,6,17,6,20,4,1,
3,7,18,21,31,10,42,27,13,4,1,2,2,2,6,17,4,32,12,6,17,4,2,8,9,16,42,26,152,27,3,0,1,2,4,16,6,32,12,118,3,5,1,1,9,5,5,12,21,5,
26,12,5,3,2,0,1,0,2,3,7,3,2,2,1,2,1,0,0,9,8,4,2,3,4,8,2,1,2,12,6,19,2,2,3,9,4,5,6,8,7,5,27,10,3,8,21,7,10,3,
4,8,20,39,17,14,16,65,13,8,2,4,3,10,16,8,16,18,42,7,4,2,1,2,1,9,3,8,17,32,12,3,0,2,2,8,21,19,93,80,132,16,6,4,6,12,16,65,45,76,
6,3,3,1,0,2,0,0,1,4,12,3,0,0,3,6,4,1,0,3,5,4,0,2,2,5,6,2,4,2,13,11,1,0,2,4,13,6,7,4,1,13,12,2,1,2,8,20,1,5,
6,10,30,21,13,10,12,27,18,7,2,2,6,16,6,17,5,32,11,16,3,2,1,7,9,9,5,12,7,10,8,1,0,4,0,5,8,11,2,25,11,3,0,0,3,6,13,13,7,114,
1,0,4,0,2,3,2,1,2,0,3,0,0,0,1,4,1,7,0,0,13,1,1,1,0,3,8,5,2,1,6,6,0,0,0,2,3,19,6,3,7,7,9,1,2,1,3,10,10,2,
5,13,20,15,5,7,4,21,13,12,4,7,14,8,16,8,4,9,42,6,3,3,4,11,2,4,3,24,18,19,4,3,1,4,7,8,2,1,12,5,0,0,0,2,0,4,3,11,2,1,
0,2,3,1,2,0,3,3,2,0,0,2,0,0,1,2,4,3,10,13,4,2,8,2,1,0,2,4,5,6,2,3,9,10,8,2,3,6,7,6,3,5,21,3,4,3,15,7,6,2,
2,10,10,3,1,2,1,9,7,7,12,13,19,5,2,0,0,2,9,9,12,22,5,3,2,0,0,1,1,1,9,12,10,1,2,1,0,0,2,4,1,8,4,3,3,1,1,1,0,2,
9,0,2,5,6,4,1,1,2,3,6,0,3,3,3,0,4,3,2,1,1,0,2,0,1,2,7,2,1,5,4,3,11,5,3,2,3,6,9,6,4,5,12,12,7,13,10,3,5,6,
5,1,20,8,2,1,2,12,13,1,8,13,14,13,4,3,1,2,13,13,37,6,12,6,3,2,1,1,2,5,26,6,4,8,6,2,0,0,4,4,16,1,1,3,6,0,1,1,0,3,
77,17,8,4,12,2,0,0,2,16,6,12,0,2,8,7,4,1,3,4,11,2,3,2,3,1,3,1,2,2,7,3,0,2,1,2,10,10,5,4,8,5,8,3,14,4,1,7,8,2,
3,10,7,21,8,3,10,27,5,7,8,13,26,16,9,5,3,3,19,16,12,22,4,16,8,2,1,1,3,5,26,12,2,3,12,1,0,0,3,7,15,8,1,1,4,7,3,1,1,10,
5,21,27,25,9,9,3,3,5,3,119,11,32,6,16,4,2,1,0,3,10,8,11,5,9,9,7,1,2,3,9,12,11,2,3,6,5,5,4,2,2,13,12,5,7,3,10,18,4,2,
1,4,20,6,17,6,16,11,13,2,6,10,14,25,16,13,10,10,42,22,5,6,12,6,16,6,2,4,3,9,5,17,4,3,5,9,3,1,2,5,4,6,1,0,3,4,5,7,4,1,
3,2,21,4,3,2,9,2,1,0,27,7,9,21,7,9,6,5,3,4,119,44,24,16,41,16,11,6,5,16,7,42,18,16,8,16,10,3,4,2,2,6,21,3,4,4,15,7,6,1,
1,2,10,21,8,10,9,27,7,0,6,9,19,16,41,17,10,32,54,16,4,3,5,16,7,16,10,5,15,27,3,4,10,3,3,2,15,2,2,8,1,1,4,1,2,2,10,12,4,1,
0,4,8,5,1,2,1,4,0,2,10,0,3,8,2,0,5,5,6,3,10,21,8,12,9,3,7,18,9,12,16,11,32,5,17,6,16,6,2,2,4,13,27,42,10,31,21,18,7,3,
1,2,4,8,17,2,16,12,2,0,6,7,10,13,16,31,16,67,42,13,1,3,1,6,16,6,16,10,44,15,4,4,3,8,5,3,10,10,6,30,1,1,5,3,3,0,3,12,4,2,
3,6,7,5,12,7,12,9,10,4,6,2,2,7,9,9,11,20,17,6,32,4,6,4,9,16,20,12,16,9,22,42,10,10,13,16,25,14,10,6,8,13,65,16,14,17,39,20,8,4,
3,7,18,21,31,10,42,27,13,4,12,13,26,25,41,31,66,67,54,22,17,4,2,8,9,16,42,26,152,27,13,7,6,7,12,16,39,32,20,118,3,5,3,3,9,9,25,27,21,5,
28,17,1,2,2,0,0,0,2,8,7,5,2,2,3,1,0,0,0,6,6,4,2,4,4,2,1,2,1,6,4,12,3,3,5,6,3,4,4,4,4,5,12,12,7,13,10,3,5,6,
1,4,20,6,17,6,16,11,13,2,6,7,10,13,16,31,16,67,42,13,2,1,1,2,3,6,16,10,44,9,98,16,3,5,7,9,21,68,93,238,11,1,0,0,2,4,16,11,44,21,
13,7,4,0,2,0,0,0,2,4,19,10,0,0,3,2,1,1,0,3,13,6,2,3,2,1,2,1,2,1,7,13,1,0,2,4,10,6,6,4,3,5,21,3,4,3,15,7,6,2,
3,10,7,21,8,3,10,27,5,7,6,9,19,16,41,17,10,32,54,16,1,1,0,3,8,16,9,26,25,27,13,3,1,2,2,1,15,13,6,36,117,12,0,0,1,2,10,28,25,187,
2,3,0,1,1,3,0,1,2,1,7,0,0,0,1,0,2,4,0,0,5,3,1,2,0,3,7,2,1,3,9,6,0,0,0,2,5,6,4,3,4,13,8,1,2,2,3,18,5,2,
5,1,20,8,2,1,2,12,13,1,6,10,14,25,16,13,10,10,42,22,1,3,1,6,16,6,16,10,44,15,5,4,1,3,6,9,10,1,28,11,1,0,0,0,2,0,5,12,4,2,
68,7,0,1,1,2,2,25,80,90,4,3,1,0,0,2,3,1,16,42,2,0,2,1,0,0,1,1,5,16,0,0,3,7,2,1,1,0,4,4,2,4,12,4,5,5,8,4,5,2,
2,5,18,3,2,2,1,8,13,4,3,13,6,2,2,0,0,0,3,7,106,22,18,8,3,0,3,28,17,19,82,50,5,2,1,1,0,1,165,8,94,24,10,1,3,1,1,0,4,172,
4,1,1,2,2,3,2,2,14,6,7,3,0,1,1,2,2,6,7,6,1,1,1,0,0,1,3,1,4,11,1,0,3,1,1,1,0,3,7,6,2,5,3,10,10,8,2,3,5,3,
2,6,7,15,3,4,3,21,5,3,8,4,14,10,2,1,0,0,8,7,37,31,12,11,5,2,3,4,6,14,130,14,20,6,2,2,0,0,15,4,120,6,6,9,2,2,0,1,4,11,
21,4,3,3,4,6,2,1,0,11,0,2,1,0,2,6,5,1,4,5,7,0,1,1,1,3,2,2,3,3,5,0,1,0,1,1,5,5,7,2,2,4,3,3,6,3,1,4,4,4,
6,5,3,10,13,7,12,12,5,4,4,13,3,16,6,2,2,2,12,16,36,22,28,16,9,4,4,3,4,8,21,50,5,6,4,3,0,0,3,6,99,24,2,0,9,6,2,0,1,12,
3,15,27,8,9,4,2,1,2,3,37,19,13,1,2,12,1,3,4,4,2,1,2,2,2,8,8,1,1,2,6,6,3,0,1,3,3,6,2,4,4,7,3,2,2,1,2,10,7,2,
2,8,7,1,4,14,3,8,5,8,4,7,14,8,16,8,4,9,42,6,9,16,12,20,16,9,4,6,4,32,6,15,20,2,9,8,3,0,1,5,4,10,6,0,2,12,3,5,4,2,
2,3,12,16,3,7,3,3,1,0,30,8,10,21,26,9,8,5,5,4,15,44,10,16,6,16,6,1,3,1,13,15,0,9,3,9,13,5,7,3,1,8,12,3,1,3,8,9,3,2,
2,4,18,10,3,7,5,12,13,2,2,2,6,16,6,17,5,32,11,16,14,10,18,16,26,16,12,8,21,27,3,5,5,6,3,16,8,2,0,9,2,0,10,0,3,5,13,8,2,0,
1,4,12,10,2,2,1,4,1,1,8,2,2,15,2,3,3,10,4,3,27,15,5,10,16,7,16,5,3,4,16,54,32,10,17,41,16,19,9,6,0,7,27,9,10,8,21,10,2,1,
1,6,7,15,4,4,3,21,6,2,2,4,3,10,16,8,16,18,42,7,16,5,6,11,16,41,16,24,45,118,4,3,5,6,9,7,21,9,7,27,0,1,2,9,2,3,4,21,2,3,
2,6,7,2,1,0,0,0,4,3,6,1,2,3,2,1,2,1,9,5,9,4,4,4,6,2,3,2,6,9,2,15,10,7,13,9,5,6,10,4,2,13,11,16,6,17,6,20,4,1,
3,7,18,21,31,10,42,27,13,4,1,2,2,2,6,17,4,32,12,6,17,4,2,8,9,16,42,26,152,27,3,0,1,2,4,16,6,32,12,118,3,5,1,1,9,5,5,12,21,6,
78,17,5,3,7,9,6,63,94,100,7,7,2,2,5,12,6,28,50,26,8,4,3,4,4,9,16,28,22,36,16,19,3,3,5,9,16,26,13,8,7,18,27,12,10,13,21,30,10,6,
4,8,20,39,17,14,16,65,13,8,6,7,10,13,16,31,16,67,42,14,106,31,28,20,26,41,43,183,153,118,98,16,3,5,7,9,21,68,93,238,132,16,6,4,6,12,16,65,45,77,
146,93,3,1,1,0,0,1,81,48,22,21,4,0,2,2,0,1,3,7,5,6,2,3,2,3,1,1,1,1,5,11,2,0,3,4,5,0,4,1,2,4,12,4,5,5,8,4,5,2,
6,5,3,10,13,7,12,12,5,4,2,2,6,16,6,17,5,32,11,16,17,4,2,8,9,16,42,26,152,28,103,4,1,1,1,3,8,33,55,118,351,117,5,2,4,7,13,28,152,188,
143,333,28,0,1,1,0,0,16,62,43,4,3,0,1,2,2,2,2,4,19,12,1,1,0,3,3,1,1,2,6,9,2,0,0,2,3,3,2,1,2,7,12,3,2,2,7,10,5,1,
2,6,7,15,3,4,3,21,5,3,4,7,14,8,16,8,4,9,42,6,16,5,6,11,16,41,16,24,45,118,12,3,0,2,2,8,21,19,93,81,113,4,0,0,0,2,3,21,18,78,
330,134,0,1,1,0,2,3,179,274,64,14,39,0,0,1,2,1,10,98,4,2,3,0,0,0,1,1,3,6,0,0,3,4,1,0,0,1,2,4,2,1,11,3,7,3,4,1,4,0,
1,5,10,7,2,2,3,12,7,2,3,6,19,3,2,0,0,0,6,6,12,22,5,3,2,0,0,1,1,1,248,50,10,7,4,1,0,38,292,104,225,94,4,2,1,1,0,1,260,555,
5,6,0,0,2,3,1,5,39,18,12,55,0,0,1,1,4,3,37,59,3,6,0,0,0,0,0,1,1,17,1,0,3,0,1,0,0,0,2,6,0,4,2,6,7,2,0,0,3,0,
2,5,4,8,5,5,4,12,4,2,4,7,6,13,4,2,0,1,11,13,37,6,12,6,3,2,1,1,2,6,130,96,20,8,7,3,0,4,56,22,295,56,9,3,2,1,0,1,11,111,
31,2,3,0,2,2,4,3,3,3,0,2,0,0,1,2,4,3,10,13,6,2,1,0,1,1,2,1,5,5,5,0,0,0,1,0,2,3,5,6,2,1,3,2,4,1,1,1,4,2,
3,5,3,2,8,10,10,3,5,2,8,6,5,4,9,3,2,2,19,6,12,22,4,16,8,2,1,1,3,5,26,50,28,6,12,5,2,2,7,7,15,94,3,5,4,2,1,0,1,11,
5,21,12,5,5,9,1,1,5,3,26,11,11,1,2,4,7,4,5,9,1,0,2,0,1,2,7,2,1,5,6,3,3,0,1,1,2,5,5,4,2,6,2,0,1,1,0,4,4,3,
4,4,4,1,3,6,3,3,4,2,4,10,6,5,9,13,7,10,15,2,5,6,12,6,16,6,2,4,3,9,6,17,20,11,9,9,7,2,2,6,3,6,9,2,7,4,2,4,2,2,
3,4,21,16,17,7,9,5,2,1,27,7,9,21,7,9,6,5,3,4,20,17,24,3,4,2,11,4,3,3,7,3,0,2,1,2,10,10,5,4,2,6,11,2,1,1,4,7,6,1,
2,7,10,2,1,2,2,3,7,4,5,7,19,4,4,4,10,13,7,6,4,3,5,16,7,16,10,5,15,27,3,6,10,6,17,16,15,3,2,10,1,1,4,5,2,9,10,9,3,0,
0,2,8,13,5,3,0,10,0,2,9,0,2,8,16,3,6,5,5,3,27,21,8,12,16,26,16,18,10,14,16,11,32,5,17,6,16,6,2,2,2,13,12,5,7,3,10,18,4,2,
2,3,9,8,3,1,3,12,8,1,3,7,5,13,9,3,9,0,15,13,1,3,1,6,16,6,16,10,44,15,4,5,5,8,9,26,21,10,8,30,0,1,3,3,7,3,16,12,3,2,
1,6,7,3,2,0,0,1,5,4,6,2,1,7,8,2,4,4,15,6,32,2,4,3,9,2,3,6,16,6,6,42,9,4,8,16,8,14,7,4,8,13,65,16,14,17,39,20,8,4,
1,2,10,21,8,10,9,27,7,0,2,3,5,3,9,4,2,13,19,6,1,1,0,3,8,16,9,26,25,27,13,7,6,7,12,16,39,32,20,118,3,2,1,2,4,9,8,27,15,3,
28,17,1,2,2,0,0,0,2,8,7,5,2,2,3,1,0,0,0,6,6,4,2,4,4,2,1,2,1,6,4,12,3,3,5,6,3,4,4,4,4,5,12,12,7,13,10,3,5,6,
1,4,20,6,17,6,16,11,13,2,6,7,10,13,16,31,16,67,42,13,2,1,1,2,3,6,16,10,44,9,98,16,3,5,7,9,21,68,93,238,11,1,0,0,2,4,16,11,44,21,
273,93,4,1,4,6,9,9,233,295,22,56,4,0,3,7,8,20,96,131,13,6,4,3,2,5,11,12,31,37,13,13,2,1,3,4,13,14,13,8,12,13,21,4,7,5,15,20,13,5,
6,10,30,21,13,10,12,27,18,7,6,9,19,16,41,17,10,32,54,16,17,4,2,8,9,16,42,26,152,27,248,96,28,11,17,26,39,67,274,238,351,117,5,2,4,7,13,28,152,187,
502,585,0,1,1,1,0,0,74,297,104,96,38,0,1,1,1,0,3,72,5,17,0,2,0,2,0,1,1,2,6,6,2,0,0,2,2,0,1,0,0,6,8,4,2,3,3,4,3,0,
2,5,4,8,5,5,4,12,4,2,4,10,6,5,9,13,7,10,15,2,1,3,1,6,16,6,16,10,44,15,98,16,3,5,7,9,21,68,93,238,326,87,0,0,0,1,2,12,44,154,
1194,1745,38,1,1,0,0,4,79,505,596,146,1206,260,0,1,1,1,4,42,42,7,2,0,21,0,0,1,3,12,0,0,2,2,0,0,0,0,1,1,0,1,4,2,5,2,3,1,2,0,
0,3,4,3,3,2,4,8,6,0,3,4,6,5,2,0,0,0,6,9,14,9,18,7,2,0,0,1,1,2,82,50,5,2,1,1,0,1,165,7,506,94,10,3,4,2,1,29,584,789,
17,80,0,0,1,1,1,3,116,152,160,461,181,0,0,1,2,4,7,190,5,80,1,36,0,0,0,0,1,11,1,1,0,0,0,0,0,0,2,5,0,1,1,2,3,1,0,0,1,0,
0,4,1,4,3,7,3,11,1,2,4,6,6,10,4,2,0,1,13,7,8,4,6,11,1,2,1,1,4,12,130,14,20,6,2,2,0,0,15,3,295,233,9,9,6,4,1,5,92,273,
3,0,1,0,1,2,2,6,15,27,4,3,1,0,0,2,3,1,16,42,6,7,18,0,0,1,2,1,3,46,3,0,1,0,0,0,0,1,7,2,1,1,1,1,2,1,0,1,2,1,
0,3,0,0,2,7,6,2,4,0,4,4,4,3,6,5,3,3,12,4,36,9,3,7,9,4,1,1,2,6,21,50,5,6,4,3,0,0,3,6,99,94,64,5,9,7,3,6,16,79,
5,15,3,3,2,4,3,3,5,3,3,6,3,1,0,2,1,6,7,12,1,1,1,0,0,1,3,1,4,11,2,2,0,0,0,1,1,5,2,5,0,1,1,0,1,1,0,1,2,2,
2,4,1,1,1,4,2,3,1,2,6,7,6,3,2,8,10,9,3,2,6,16,6,3,2,9,3,4,2,32,6,15,20,2,9,8,3,0,1,5,4,10,9,12,7,12,5,7,6,3,
2,3,12,16,3,7,3,3,1,0,30,6,10,10,3,5,8,3,4,4,2,4,10,3,2,2,6,6,5,12,5,0,1,0,1,1,5,5,7,2,1,2,4,1,0,1,3,4,3,2,
3,4,4,0,1,1,0,2,6,2,6,9,6,3,2,3,5,11,3,4,12,9,18,7,3,9,12,8,21,10,3,5,5,6,3,16,8,2,0,9,2,1,10,5,12,9,13,12,4,1,
0,3,9,10,9,2,5,4,1,1,10,2,3,15,16,17,6,10,6,3,27,15,5,10,16,7,16,5,3,4,6,7,13,10,4,4,4,19,7,5,4,7,3,2,2,1,2,10,7,2,
1,6,7,4,1,1,2,11,6,2,4,5,10,10,2,1,2,0,3,7,3,3,4,11,2,4,3,24,18,19,4,3,5,6,9,7,21,9,7,27,1,2,5,9,7,17,16,21,4,3,
1,4,7,5,4,3,0,1,6,4,5,2,1,3,9,5,3,4,17,5,9,3,4,2,6,16,6,12,6,5,22,42,10,10,13,16,25,14,10,6,2,13,11,16,6,17,6,20,4,1,
2,4,18,10,3,7,5,12,13,2,2,4,5,5,6,3,2,11,12,9,3,2,1,7,9,9,5,12,7,10,3,0,1,2,4,16,6,32,12,118,3,5,3,3,9,9,25,27,21,5,
26,12,5,3,2,0,1,0,2,3,7,3,2,2,1,2,1,0,0,9,8,4,2,3,4,8,2,1,2,12,6,19,2,2,3,9,4,5,6,8,7,5,27,10,3,8,21,7,10,3,
4,8,20,39,17,14,16,65,13,8,2,4,3,10,16,8,16,18,42,7,4,2,1,2,1,9,3,8,17,32,12,3,0,2,2,8,21,19,93,80,132,16,6,4,6,12,16,65,45,77,
146,93,3,1,1,0,0,1,81,48,22,21,4,0,2,2,0,1,3,7,5,6,2,3,2,3,1,1,1,1,5,11,2,0,3,4,5,0,4,1,2,4,12,4,5,5,8,4,5,2,
6,5,3,10,13,7,12,12,5,4,2,2,6,16,6,17,5,32,11,16,17,4,2,8,9,16,42,26,152,28,103,4,1,1,1,3,8,33,55,118,351,117,5,2,4,7,13,28,152,187,
789,585,28,1,2,4,3,10,94,506,104,292,38,0,1,4,7,10,50,248,19,17,28,2,0,3,8,18,22,107,9,9,2,0,0,2,5,19,13,12,7,13,12,4,3,3,7,18,10,9,
5,13,20,15,5,7,4,21,13,12,6,10,14,25,16,13,10,10,42,22,16,5,6,11,16,41,16,24,45,118,98,16,3,5,7,9,21,68,93,238,506,233,64,12,12,17,25,66,152,387};
int a[30];
bool calc(int x)
{
	if(x<=9) return x==7;
	int t=0,now=0;
	while(x)
	{
		a[++t]=x%10;
		x/=10;
	}
	for(int i=t;i>=2;i--)
		now=now*10+abs(a[i]-a[i-1]);
	return calc(now);
}
int main()
{
//	freopen("a.out","w",stdout);
//	for(int i=1;i<=(int)(1e4);i++)
//	{
//		for(int j=(i-1)*(int)(1e5)+1;j<=i*(int)(1e5);j++)
//			tot[i]+=calc(j);
//		printf("%d,",tot[i]);
//		if(!(i%50)) printf("\n");
//	}
	scanf("%d %d",&l,&r);
	int ans=0;
	if(r-l<=(int)1e5)
	{
		for(int i=l;i<=r;i++)
			ans+=calc(i);
	}
	else
	{
		int t1=(ceil)((double)l/1e5),t2=(floor)((double)r/1e5);
		for(int i=t1;i<t2;i++)
			ans+=tot[i];
		for(int i=l;i<=t1*(int)(1e5);i++)
			ans+=calc(i);
		for(int i=t2*(int)(1e5)+1;i<=r;i++)
			ans+=calc(i);
	}
	printf("%d",ans);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值