hdu_1201:18歲生日

http://acm.hdu.edu.cn/showproblem.php?pid=1201

#include <stdio.h>

int isyear(int x)
{
	if ( (x%400==0)||(x%100!=0&&x%4==0) )
	{
		return 1;
	}
	else
		return 0;
}

int dayofmonth[13][2]=
{
        0,0,
		31,31,                  
		28,29,                  
		31,31,
		30,30,
		31,31,                              
		30,30,
		31,31,
		31,31,
		30,30,
		31,31,
		30,30,
		31,31,
};
struct E 
{
	int day,month,year;
	void nextday()
	{
		day++;
		if (day>dayofmonth[month][isyear(year)])
		{
			day=1;
			month++;
		}
		if (month>12)
		{
			month=1;
			year++;
		}
	}
};
int buf[3000][13][32];

int main()
{
	E tmp;
	tmp.day=1;
	tmp.month=1;
	tmp.year=0;
	int cnt=0;
	while (tmp.year!=3000)
	{
		buf[tmp.year][tmp.month][tmp.day]=cnt;
		tmp.nextday();
		cnt++;
	}
	int n,y,m,d;
	while (scanf("%d",&n)!=EOF)
	{
		while (n--)
		{
			scanf("%4d-%2d-%2d",&y,&m,&d);
			if (isyear(y))
			{
				if (m==2&&d==29)
				{
					if (!isyear(y+18))
					{
						printf("-1\n");
						continue;
					}
				}
			}
			int x=buf[y+18][m][d]-buf[y][m][d];
			printf("%d\n",x);
		}
	}
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章