比赛 [不是Rapiz出的]农场主钦定NOIP模拟赛1 评测结果 AAAAAAAAAA
题目名称 Rabbit Number 最终得分 100
用户昵称 jjky 运行时间 1.833 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2016-11-08 21:26:13
显示代码纯文本
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long LL;
LL l,r;
int b[15];
LL sum,ii;
void init()
{
	b[0]=1;
	for(int i=1;i<=10;i++)
		b[i]=10*b[i-1];
}
bool work(LL x)
{
	int a[15],t=0,c[20];
	memset(c,0,sizeof(c));
	while(x>0)
	{
		a[++t]=x%10;
		x/=10;
	}
	for(int i=1;i<=t;i++)
		if(a[i]>3)
		{
			ii/=b[i-1];
			ii*=b[i-1];
			ii+=b[i-1];
			ii--;
			return false;
		}
	for(int i=1;i<=t;i++)
		for(int j=1;j<=t;j++)
			{
				c[i+j-1]+=a[i]*a[j];
				if(c[i+j-1]>=10)
					return false;
			}
	return true;
}
int main()
{
	freopen("rabbits.in","r",stdin);
	freopen("rabbits.out","w",stdout); 
	cin>>l>>r;
	init();
	for(ii=l;ii<=r;ii++)
		if(work(ii))
			sum++;
	cout<<sum<<endl;
	fclose(stdin);
	fclose(stdout);
	return 0;
}
/*
22 22 
484 484
1 58
58 484
1000000000 1000000000

1
0
12 
24
1
*/