已AC代码:
#include<cstdio>
#include<iostream>
using namespace std;
int t[1000000]={0},f[1000000]={0};
void detection(int i, int b[])
{
int r[10], j=0;
int a=0, d=0, c=0;
for(; i!=0; i/=10)
{
r[j]=i%10;
j++;
if(i%10==5)
a++;
if(i%10==2)
d++;
if(i%10==1)
c++;
}
if(a&&d&&c)
b[0]=1;
else
b[0]=0;
b[1]=0;
for(int i=0; i<j-2; i++)
{
if(r[i]==1&&r[i+1]==2&&r[i+2]==5)
b[1]=1;
}
}
int main()
{
int a, b, z[2], j=0, k=0;
int cont=1;
for(int i=125; i<1000000; i++)
{
detection(i, z);
if(z[0])
{
t[i]=j+1;
j=t[i];
}
else
t[i]=j;
if(z[1])
{
f[i]=k+1;
k=f[i];
}
else
f[i]=k;
}
while((scanf("%d%d", &a, &b)) != EOF)
{
printf("Case %d:%d %d\n", cont++, t[b]-t[a-1], f[b]-f[a-1]);
}
return 0;
}