Chinaunix首页 | 论坛 | 博客
  • 博客访问: 445816
  • 博文数量: 98
  • 博客积分: 6011
  • 博客等级: 准将
  • 技术积分: 1030
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-23 13:19
文章分类

全部博文(98)

文章存档

2011年(2)

2009年(2)

2008年(31)

2007年(35)

2006年(28)

我的朋友

分类:

2008-04-28 21:17:33

上次厦大校赛热身赛的H题,本身是个简单题,过的人挺多,但那天不知怎么搞的,steel写了代码,交上去返回几个WA后,发给我看,我测试了很多组数据也没有发现问题,甚至把nh的代码弄过来,做了多组很特殊的数据测试仍是没有发现问题,无奈,我按nh的思路重新写了代码,提交,AC。。。
题目链接:
题目大意是给出一个以秒为单位的时间值T,然后再给出一个初始时刻,算出经过T秒后的时刻。T比较大,有可能要有几十年的时间。。到现在也没有看出steel的代码错在哪。。。
我的代码:
 

#include<iostream>
using namespace std;
bool isleap(int year)//判断闰年
{
    if((year%4==0&&year%100!=0)||(year%400==0)) return true;
    return false;
}
int main()
{
    int M,year,month,day,hour,minute,second,th,tm,ts;
    while(cin>>M)
    {
         scanf("%d-%d-%d %d:%d:%d",&year,&month,&day,&hour,&minute,&second);
         th=M/3600;M%=3600;tm=M/60;M%=60;ts=M;hour+=th;minute+=tm;second+=ts;
         minute+=second/60;second%=60;hour+=minute/60;day+=hour/24;hour%=24;minute%=60;
         while(true)
         {
             if(month==2)//如果为2月份
             {
                 if(isleap(year))
                 {
                     if(day<=29) break;
                     day-=29;month++;
                 }
                 else
                 {
                     if(day<=28) break;
                     day-=28;month++;
                 }
             }
             else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
             {
                 if(day<=31) break;
                 day-=31;month++;
                 if(month>12){month-=12;year++;}
             }
             else
             {
                 if(day<=30) break;
                 day-=30;month++;
             }
         }
         printf("%d-%02d-%02d %02d:%02d:%02d\n",year,month,day,hour,minute,second);
    }
    return 0;
}

//几组测试数据

/*
86400
2008-04-27 12:00:00
2008-04-28 12:00:00
86400
2008-04-28 12:00:00
2008-04-29 12:00:00
86400
2008-02-29 12:00:00
2008-03-01 12:00:00
500000000
2008-01-01 00:00:00
2023-11-05 00:53:20
86400
2008-12-31 12:00:00
2009-01-01 12:00:00
500000000
2017-12-31 23:59:59
2033-11-05 00:53:19
*/

 

阅读(1030) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-05-01 23:20:44

thebeet。厦大的大牛哇。大牛光临,深感荣幸。。。

chinaunix网友2008-05-01 22:11:03

居然从这里找到大牛的BLOG 你们原先的代码错在这组数据 3612 2008-02-28 23:58:50