【ブルーブリッジ杯省試合】第11回ブルーブリッジ杯省試合C/C++大学B組第2回試験問題G回文日付


【    】
2020      ,                :2020   2   2  。           “yyyymmdd”         8     20200202,         。             。      20200202   “    ”      。        ,      2             :20211202   2021   12   2  。       20200202            ,     ABABBABA       。        ,     100           ABABBABA       :21211212   2121   12   12  。    “     ”,    “    ”。      8      ,                     ABABBABA            。
【    】
           N,    。
【    】
    ,   1     。            ,          ABABBABA       。
【    】
20200202
【    】
20211202
21211212
【         】
        ,10000101 ≤ N ≤ 89991231,   N          8     。
             
#include
using namespace std;
int a[8];
int b[13]={
     0,31,28,31,30,31,30,31,31,30,31,30,31};
bool judgecy(int x){
     
	int m=0;
	while(x){
     
		a[m++]=x%10;
		x/=10;
	}
	for(int i=0;i<m;i++){
     
		if(a[i]!=a[m-i-1]){
     
			return false;
		}
	}
	return true;
}
bool judgedate(int x){
     
	int year=x/10000;
	int month=a[3]*10+a[2];
	int day=a[1]*10+a[0];
	if((year%100!=0&&year%4==0)||year%400==0){
     
		b[2]=29;
	}else{
     
		b[2]=28;
	}
	if(month>12||month<=0){
     
		return false;
	}else{
     
		if(day>b[month]){
     
			return false;
		}
	}
	return true;
}
int main(){
     
	int n;
	cin>>n;
	int r1=0;
	int r2=0;
	bool flag=false;
	for(int i=n+1;i<=99999999;i++){
     
		//        
		if(judgecy(i)){
     
			//         
			if(judgedate(i)){
     
				r1=i;
				//      ABABBABA  
				if(a[0]==a[2]&&a[2]==a[5]&&a[5]==a[7]&&a[1]==a[3]&&a[3]==a[4]&&a[4]==a[6]){
     
					r2=i;
					flag=true;
				}
				break;
			} 
		}
	}
	if(!flag){
     
		for(int i=r1+1;i<=99999999;i++){
     
		//        
		if(judgecy(i)){
     
			//         
			if(judgedate(i)){
     
				//      ABABBABA  
				if(a[0]==a[2]&&a[2]==a[5]&&a[5]==a[7]&&a[1]==a[3]&&a[3]==a[4]&&a[4]==a[6]){
     
					r2=i;
					break;
				}
			} 
		}
	}	
	}
	cout<<r1<<endl;
	cout<<r2<<endl;
	return 0;
}
٩(๑❛ᴗ❛๑)۶