#include<bits/stdc++.h>
using namespace std;
int y,m,d;
bool check1(string s)
{
int l=0,r=7;
while(l<=r){
if(s[l]!=s[r])
return false;
l++,r--;
}
return true;
}
bool check2(string s)
{
if(s[0]==s[2]&&s[1]==s[3]&&s[0]!=s[1])
return true;
return false;
}
void change(string s)
{
y=0,m=0,d=0;
for(int i=0;i<4;i++)
y=y*10+s[i]-'0';
for(int i=4;i<6;i++)
m=m*10+s[i]-'0';
for(int i=6;i<8;i++)
d=d*10+s[i]-'0';
}
bool year(int y)
{
if((y%4==0&&y%100)||y%400==0)
return true;
else return false;
}
void next()
{
d++;
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
if(d==32){
d=1;
m++;
}
}
else if(m==2){
if(year(y)){
if(d==30){
d=1;
m++;
}
}
else{
if(d==29){
d=1;
m++;
}
}
}
else{
if(d==31){
d=1;
m++;
}
}
if(m==13){
m=1;
y++;
}
}
int main()
{
string s;
cin>>s;
change(s);
while(1){
next();
char ch[9];
sprintf(ch,"%d%02d%02d",y,m,d);
s=ch;
if(check1(s)){
cout<<s<<'\n';
break;
}
}
while(1){
if(check1(s)&&check2(s)){
cout<<s<<'\n';
break;
}
next();
char ch[9];
sprintf(ch,"%d%02d%02d",y,m,d);
s=ch;
}
return 0;
}
这个其实也不难,就是代码写长了一点,虽然写得很长,但是没出啥错,因为这个就不是很难。