HDU ACM 4515 小Q系列故事——世界上最遥远的距离

来源:互联网 发布:爱知工科大学怎么样 编辑:程序博客网 时间:2024/06/04 19:30

分析:最容易的方法就是一天一天的模拟了。

#include<iostream>using namespace std;int a[]={0,31,28,31,30,31,30,31,31,30,31,30,31};#define Y 2013#define M 3#define D 24bool leap(int y){return y%400==0 || y%4==0&&y%100!=0;}void change(int k,int fg) //-1回到过去,1去到未来{int y=Y,m=M,d=D;while(k--){if(leap(y))a[2]=29;elsea[2]=28;d+=fg;if(fg==-1){if(d<=0){    m+=fg;    if(m<=0){     m=12;    y+=fg;}    d=a[m];}}else if(fg==1){if(d>a[m]){m+=fg;if(m>12){m=1;y+=fg;}d=1;}}}printf("%04d/%02d/%02d",y,m,d);}int main(){int n,m;scanf("%d",&n);while(n--){scanf("%d",&m);change(m,1);putchar(' ');change(m,-1);putchar('\n');}    return 0;}


0 0
原创粉丝点击