TLE了四次,终于过了,880ms。。。真不容易啊!!!
#include<stdio.h>
int xx(char x,char y)
{
return (x-48)*10+y-48;
}
int main()
{
int n,num,i,j,k,x,y,p,px,py,aa[86405],hh1,mm1,ss1,hh2,mm2,ss2;
char a[9],b[9];
p=0;
for(i=0;i<=23;i++)
for(j=0;j<=59;j++)
for(k=0;k<=59;k++)
{
if((i*10000+j*100+k)%3==0)
aa[p++]=1;
else
aa[p++]=0;
}
scanf("%d",&n);
while(n--)
{
getchar();
scanf("%s%s",a,b);
hh1=xx(a[0],a[1]); hh2=xx(b[0],b[1]);
mm1=xx(a[3],a[4]); mm2=xx(b[3],b[4]);
ss1=xx(a[6],a[7]); ss2=xx(b[6],b[7]);
x=hh1*10000+mm1*100+ss1;
y=hh2*10000+mm2*100+ss2;
px=ss1+mm1*60+hh1*3600;
py=ss2+mm2*60+hh2*3600;
num=0;
if(x<=y)
{
for(i=px;i<=py;i++)
if(aa[i]==1)
num++;
}
else
{
for(i=px;i<86400;i++)
if(aa[i]==1)
num++;
for(j=0;j<=py;j++)
if(aa[j]==1)
num++;
}
printf("%d\n",num);
}
return 0;
}