【ブルーブリッジ杯省試合】第11回ブルーブリッジ杯省試合C/C++大学B組第2回試験問題G回文日付
17462 ワード
【 】
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;
}
٩(๑❛ᴗ❛๑)۶