//九度OJ 教程6 日期类问题预处理之日期差值
//http://ac.jobdu.com/problem.php?cid=1040&pid=5
#include<stdio.h>
#include <math.h>
#include <string.h>
#define MAXS 5550
#define RUN(x) (x%400==0)||(x%4==0&&x%100!=0)
long long data[MAXS][13][32]={0};
int dd[2][13]={0,31,28,31,30,31,30,31,31,30,31,30,31,0,31,29,31,30,31,30,31,31,30,31,30,31};
int main()
{
long long count;
int year,month,day,flag=1;
int a,b;
for(year=count=0;year<MAXS;year++)
{
flag=RUN(year);
for(month=1;month<=12;month++)
for(day=1;day<=dd[flag][month];day++)
data[year][month][day]=++count;
}
while(scanf("%d %d %d",&year,&month,&day)!=EOF)
{
printf("%lld\n",data[year][month][day]-data[year][1][1]+1);
}
return 0;
}
九度OJ 教程6 日期类问题预处理之日期差值
最新推荐文章于 2017-03-25 09:48:50 发布