# coreBugZJ

## The Date， FZU 2011年3月月赛之 E， FZU 2014

Problem 2014 The Date

## Problem Description

abcdxyzk believes that 2012.12.21 is the doomsday after he watched the movie “2012”. He counts how many days later the doomsday will come! However he doesn’t keep the date in mind!

You are given one integer N, indicating N days later, the doomsday will come, and abcdxyzk wants to know the date now!

## Input

There are several test cases.

For each case, only one integer N in a single line , indicating N days later, the doomsday will come. (1<=n<= 1000000)

## Output

For each test case, output the date now in format “yyyy-mm-dd”, where “yyyy” is the year, “mm” is the month and “dd” is the day.

1085
1

2010-01-01
2012-12-20

## Source

FOJ有奖月赛-2011年03月

1 #include <stdio.h>
2
3 #define  L  1000009
4
5 int year[ L ], month[ L ], day[ L ];
6
7 int isint y ) {
8         return (y%400==0|| ((y%100!=0)&&(y%4==0));
9 }
10
11 void init() {
12         int totD[] = { 0312831303130313130313031 };
13         int i;
14         year[ 0 ] = 2012;
15         month[ 0 ] = 12;
16         day[ 0 ] = 21;
17         for ( i = 1; i < L; ++i ) {
18                 year[ i ] = year[ i - 1 ];
19                 month[ i ] = month[ i - 1 ];
20                 day[ i ] = day[ i - 1 ];
21                 if ( --day[ i ] == 0  ) {
22                         if ( --month[ i ] == 0 ) {
23                                 --year[ i ];
24                                 month[ i ] = 12;
25                         }
26                         day[ i ] = totD[ month[ i ] ];
27                         if ( (is(year[i])) && (month[i]==2) ) {
28                                 ++day[ i ];
29                         }
30                 }
31         }
32 }
33
34 int main() {
35         int n;
36         init();
37         while ( scanf("%d"&n) == 1 ) {
38                 printf( "%4d-%02d-%02d\n", year[n], month[n], day[n] );
39         }
40         return 0;
41 }
42

posted on 2011-03-20 20:07 coreBugZJ 阅读(1290) 评论(0)  编辑 收藏 引用 所属分类: ACM

 只有注册用户登录后才能发表评论。 【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库 相关文章: