wdk20040930 @ 2017-08-26 10:04:13
#include<cstdio>
using namespace std;
int main()
{
int Y,M,D,r,cg,endM,endD,x;
char tempa[101],tempb[101];
int a[21],b[21];
int g,f;
for(x=0;x<8;++x)
{
scanf("%d",&tempa[x]);
}
for(x=0;x<8;++x)
{
scanf("%d",&tempb[x]);
}
for(x=0;x<8;++x){a[x]=tempa[x]-48;b[x]=tempb[x]-48;}
int flag,isU;
int endY=1000*b[0]+100*b[1]+10*b[2]+b[3];
if(b[4]==0)
{
endM=b[5];
}
else endM=10*b[4]+b[5];
if(b[6]==0)
{
endD=b[7];
}
else endD=10*b[6]+b[7];
while(1)
{
flag=1;
for(r=0;r<8;r++)
{
if(a[r]!=a[7-r])
{
flag=0;
break;
}
}
if(flag ==1)
{
cg++;
}
Y=1000*a[0]+100*a[1]+10*a[2]+a[3];
if(a[4]==0)
{
M=a[5];
}
else
M=10*a[4]+a[5];
if(a[6]==0)
{
D=a[7];
}
else
D=10*a[6]+a[7];
int isFourth=0;
if(Y % 4==0 && Y % 100 !=0)
isFourth=1;
if(Y % 400==0)
isFourth=1;
if(M==2)
{
if(isFourth==1)
{
isU=2;
}
else
{
isU=3;
}
}
else
{
isU=0;
switch(M)
{
case 1:isU=1;break;
case 3:isU=1;break;
case 5:isU=1;break;
case 7:isU=1;break;
case 8:isU=1;break;
case 10:isU=1;break;
case 12:isU=1;break;
}
}
if(M==12 && D==31)
{
Y++;
int addy=Y,data[10];
for(int i=0;addy>0;i++)
{
data[i]=addy%10;addy/=10;
}
a[0]=data[3];
a[1]=data[2];
a[2]=data[1];
a[3]=data[0];
M=1;
D=1;
a[4]=0;
a[5]=1;
a[6]=0;
a[7]=1;
}
if(isU==0)
{
if(D==30)
{
M++;
D=1;
a[6]=0;
a[7]=1;
if(M>=10)
{
a[4]=1;
a[5]=M%10;
}
else
{
a[4]=0;
a[5]=M;
}
}
else
{
D++;
if(10>D && D>0)
{
a[6]=0;a[7]=D;
}
else
{
if(20>D&&D>9)
{
a[6]=1;
a[7]=D%10;
}
else
{
if(30>D && D>19)
{
a[6]=2;
a[7]=D%10;
}
else
{
a[6]=3;a[7]=D%10;
}
}
}
}
}
if(isU==1)
{
if(D==31)
{
M++;
D=1;
a[6]=0;
a[7]=1;
if(M>=10)
{
a[4]=1;
a[5]=M%10;
}
else
{
a[4]=0;
a[5]=M;
}
}
else
{
D++;
if(10>D && D>0)
{
a[6]=0;
a[7]=D;
}
else
if(20>D && D>9)
{
a[6]=1;
a[7]=D%10;
}
else
if(30>D && D>19)
{
a[6]=2;
a[7]=D%10;
}
else
{
a[6]=3;
a[7]=D%10;
}
}
}
if(isU==2)
{
if(D==29)
{
M++;
D=1;
a[6]=0;
a[7]=1;
if(M>=10)
{
a[4]=1;
a[5]=M%10;
}
else
{
a[4]=0;
a[5]=M;
}
}
else
{
D++;
if(10>D && D>0)
{
a[6]=0;a[7]=D;
}
else
if(20>D && D>9)
{
a[6]=1;a[7]=D%10;
}
else
if(30>D && D>19)
{
a[6]=2;a[7]=D%10;
}
else
{
a[6]=3;a[7]=D%10;
}
}
}
if(isU==3)
{
if(D==28)
{
M++;
D=1;
a[6]=0;
a[7]=1;
{
if(M>=10)
{
a[4]=1;
a[5]=M%10;
}
else
{
a[4]=0;
a[5]=M;
}
}
}
else
{
D++;
if(10>D&&D>0)
{
a[6]=0;a[7]=D;
}
else
{
if(20>D && D>9)
{
a[6]=1;
a[7]=D%10;
}
else
{
if(30>D&&D>19)
{
a[6]=2;
a[7]=D%10;
}
else
{
a[6]=3;
a[7]=D%10;
}
}
}
}
}
if(Y>endY)break;
{
if(Y==endY)
{
if(M>endM)break;
if(M==endM)
{
if(D>endD)
break;
}
}
}
}
printf("%d\n",cg);
return 0;
}