游客 Signup | Login
中文 | En

2682 - 天数

小艳昨晚梦见了一位老人,老人告诉她在她第20个生日时她的白马王子将会出现,她很想知道还要过几天她的白马王子才会出现,但是她总是算不清楚,所以今天一大早就找到了你——传说中的电脑高手,想请你帮她写个程序,告诉她答案。

Input

共两行:

       第一行3个数,Y0,M0,D0数与数之间用空格隔开,分别为小艳的出生年月日(即第一个生日)

      第二行3个数,Y,M,D数与数之间用空格隔开,分别为今天的年月日

Output

 仅包含一行,即需要经过的天数

Examples

Input

1999 4 5
2009 12 12

Output

3036

Hint

【数据规模】

 

100%的数据,1≤Y0,Y≤3000

保证输入的日期合法

保证答案为正

 

【样例说明】

 

        第20个生日即2018年4月5日

Solution C++

#include <cstdio>
int main(void) {
	int y0, m0, d0, y, m, d, s=0, i;
	int md[12]={31,28,31,30,31,30,31,31,30,31,30,31};
	scanf("%d%d%d%d%d%d", &y0, &m0, &d0, &y, &m, &d);
	y0 += 19; //目标年份
	if(y%400==0 || y%4==0&&y%100>0) md[1] = 29;
	for(s=-d, i=0; i<m-1; ++i) s -= md[i]; // 负数表示当年已过的天数
	for(; y<y0; ++y) { //中间年份的天数
		if(y%400==0 || y%4==0&&y%100>0) s += 366;
		else s += 365;
	}
	if(y%400==0 || y%4==0&&y%100>0) md[1] = 29;
	else  md[1] = 28;
	for(i=0, s+=d0; i<m0-1; ++i) s += md[i];
	printf("%d\n", s);
	return 0;
}

Hint

【数据规模】

 

100%的数据,1≤Y0,Y≤3000

保证输入的日期合法

保证答案为正

 

【样例说明】

 

        第20个生日即2018年4月5日

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题