#include<stdio.h>
int a[2][12]={
31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31};
int sumy[2]={
365,366};
int py,pm,pd;
int year(int y){
if((y%4==0&&y%100!=0)||y%400==0)
return 1;
return 0;
}
int numm(int y,int m,int d,int n){
int t=year(y),k=0;
if(a[t][m-1]-d>=n){
py=y;
pm=m;
pd=d+n;
return 0;
}
n=n-(a[t][m-1]-d);
while(n>a[t][m]){
n=n-a[t][m];
m=m+1;
k=1;
}
m=m+1;
py=y;
pm=m;
pd=n;
return 0;
}
int numy(int y,int m,int d,int n){
while(n>sumy[year(y)]){
n=n-sumy[year(y)];
y=y+1;
}
numm(y,m,d,n);
}
int main(){
int y,m,d,n,sy,sm,i;
while(scanf("%d %d %d %d",&y,&m,&d,&n)!=EOF){
sm=0;
for(i=0;i<m-1;i++)
sm+=a[year(y)][i];
sm+=d;
sy=sumy[year(y)]-sm;
if(sy>=n)
numm(y,m,d,n);
else{
n=n-sy;
y=y+1;
m=1;
d=1;
numy(y,m,d,n-1);
}
printf("%04d-%02d-%02d\n",py,pm,pd);
}
}
/*
2015 1 1 15
2014 11 9 1000
2021 1 1 31
2021 1 1 365
2021 1 1 254
2021 1 1 619
*/
[Preliminar de la Copa Blue Bridge 2015] Galaxy Bomb
Supongo que te gusta
Origin blog.csdn.net/banxiaCSDN/article/details/112696080
Recomendado
Clasificación