Untitled
unknown
c_cpp
a year ago
904 B
14
Indexable
#include <stdio.h>
using namespace std;
int find(int a,int b);
bool check(int x);
int get_day(int m, int y) {
int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(check(y) && m==2) {
return 29;
}
else {
return day[m];
}
}
int main(){
int n,a,yy,mm,dd;
scanf("%d",&n);
int child[n],day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
for(int i=0;i<n;i++){
scanf("%d",&child[i]);
}
scanf("%d/%d/%d",&yy,&mm,&dd);
a=child[0];
for(int i=1;i<n;i++){
a=find(a,child[i]);
}
dd+=a;
while(dd> get_day(mm, yy)){
dd-= get_day(mm, yy);
if(mm==12){
mm=1;
yy++;
}
else {
// if(mm==2&&check(yy))dd--;
mm++;
}
}
printf("%04d/%02d/%02d",yy,mm,dd);
}
int find(int a,int b){
if(b>a){
int t=b;
b=a;
a=t;
}
int k=a;
while(a%b!=0){
a+=k;
}
return a;
}
bool check(int x){
if((x%100!=0||x%400==0)&&x%4==0)return 1;
else return 0;
}Editor is loading...
Leave a Comment