#include <iostream>
using namespace std;bool isLeap(int y){return (y%4==0&&y%100!=0)||(y%400==0);
}bool check(int year,int month,int day){//判斷是否為合法日期if(month>12||month==0) return false;if(day>31) return false;if(month==2){if(isLeap(year)&&day>29)return false;if(!isLeap(year)&&day>28)return false;}if(month==4||month==6||month==9||month==11){if(day>30) return false;}return true;
}
int main()
{int n,i;cin>>n;int a,b,c,d,e,f,g,h;//8位數字int year,month,day;bool flag=false;for(i=n+1;i<=99999999;i++){year=i/10000;month=(i%10000)/100;day=i%100;a=i%10;b=(i/10)%10;c=(i/100)%10;d=(i/1000)%10;e=(i/10000)%10;f=(i/100000)%10;g=(i/1000000)%10;h=(i/10000000)%10;if(a==h&&b==g&&c==f&&d==e&&flag==false){if(check(year,month,day)){cout<<i<<endl;flag=true;//只輸出一個回文}}if(a==h&&b==g&&c==f&&d==e&&a==c&&b==d){if(check(year,month,day)){cout<<i<<endl;break;}}}return 0;
}
2020 年春節期間,有一個特殊的日期引起了大家的注意:2020 年 2 月 2 日。因為如果將這個日期按 “yyyymmdd” 的格式寫成一個 8 位數是 20200202,恰好是一個回文數。我們稱這樣的日期是回文日期。
有人表示 20200202 是 “千年一遇” 的特殊日子。對此小明很不認同,因為不到 2 年之后就是下一個回文日期:20211202 即 2021 年 12 月 2 日。
也有人表示 20200202 并不僅僅是一個回文日期,還是一個 ABABBABA 型的回文日期。對此小明也不認同,因為大約 100 年后就能遇到下一個 ABABBABA 型的回文日期:21211212 即 2121 年 12 月 12 日。算不上 “千年一遇”,頂多算 “千年兩遇”。
給定一個 8 位數的日期,請你計算該日期之后下一個回文日期和下一個 ABABBABA 型的回文日期各是哪一天。
輸入描述
輸入包含一個八位整數?NN,表示日期。
對于所有評測用例,10000101≤N≤8999123110000101≤N≤89991231,保證?NN?是一個合法日期的 8 位數表示。
輸出描述
輸出兩行,每行 1 個八位數。第一行表示下一個回文日期,第二行表示下一個 ABABBABA 型的回文日期。
輸入輸出樣例
示例
輸入
20200202
輸出
20211202
21211212