由于测试点内容比较复杂,所以我不得不用一下你们比较反感的LATEX,请原谅。
测试点信息:
\#1&\#2&\#3&\#4&\#5&\#6&\#7\\ \colorbox{red}{\color{white}WA}&\colorbox{green}{\color{white}AC}&\colorbox{red}{\color{white}WA}&\colorbox{green}{\color{white}AC}&\colorbox{green}{\color{white}AC}&\colorbox{red}{\color{white}WA}&\colorbox{darkblue}{\color{white}TLE}\\ \#8&\#9&\#10&\#11\\ \colorbox{darkblue}{\color{white}TLE}&\colorbox{darkblue}{\color{white}TLE}&\colorbox{darkblue}{\color{white}TLE}&\colorbox{green}{\color{white}AC} \end{matrix}$$ 源代码: ```cpp #include"stdio.h" const int m_d[2][12]={ {31,28,31,30,31,30,31,31,30,31,30,31},//平年 {31,29,31,30,31,30,31,31,30,31,30,31}//闰年 }; struct date{ int y,m,d; bool leap(void){ return y%4==0&&y%100!=0||y%400==0; } date operator+(int day){ date ans; ans.y=y; ans.m=m; ans.d=d; if(day<=m_d[leap()?1:0][m]) ans.d+=day; while(day){ if(day<=m_d[leap()?1:0][m]){ ans.d+=day; break; } ans.m++; ans.d-=m_d[leap()?1:0][m]; } while(ans.m>12){ ans.m-=12; ans.y++; } return ans; } }; date int_date(int a){ date ans={0,0,0}; ans.d+=a%10; a/=10; ans.d+=a%10*10; a/=10; ans.m+=a%10; a/=10; ans.m+=a%10*10; a/=10; ans.y+=a%10; a/=10; ans.y+=a%10*10; a/=10; ans.y+=a%10*100; a/=10; ans.y+=a%10*1000; return ans; } int date_int(date a){ int ans=0; ans+=a.y; ans*=100; ans+=a.m; ans*=100; ans+=a.d; return ans; } int main(void){ int a,b,ans=0; date d1,d2; scanf("%d%d",&a,&b); d1=int_date(a); d2=int_date(b); for(date i=d1;i.y!=d2.y||i.m!=d2.m||i.d!=d2.d;i=i+1){ int in=date_int(i); if(in/10000000==in%10&&in/1000000%10==in/10%10&&in/100000%10==in/100%10&&in/10000%10==in/1000%10)//判断回文 ans++; } printf("%d",ans); return 0; } ```