回 帖 发 新 帖 刷新版面

主题:悬赏50分

一、到天宫做客heaven
源程序名    HEAVEN.pas
可执行文件名   HEAVEN.exe
输入文件名   HEAVEN.in 
输出文件名     HEAVEN.out
时限           1秒

有一天,我做了个梦,梦见我很荣幸的接到了猪八戒的邀请,到天宫陪他吃酒。我犹豫了。天上一日,人间一年啊!当然,我是个闲人,一年之中也没有多少时日是必须在人间的,因此,我希望选一个最长的空闲时间段,使我在天上待的时间尽量长。记住,今年是4000年。天上一天也是24小时,每小时60分,每分60秒。

输入
输入文件的第一行是一个非负整数 N,表示4000年中必须呆在人间的天数,以下共N行,每行两个用空格隔开的正整数,即日期(月,日),输入文件保证无错误,日期无重复。

输出
输出文件仅有一行包含一个非负整数,即在天上的时间(四舍五入精确到秒)。

样例
heaven.in
2
3 8
12 2

heaven.out
63266

回复列表 (共1个回复)

沙发

program heaven;
const day:array[1..11] of longint
          =(31,29,31,30,31,30,31,31,30,31,30);
var i,j,n,m,d,t,max:longint;
    s:array[1..367] of boolean;
begin
     assign(input,'heaven.in');
     reset(input);
     assign(output,'heaven.out');
     rewrite(output);
     read(n);
     fillchar(s,sizeof(s),false);
     s[367]:=true;
     for i:=1 to n do
     begin
          read(m,d);
          {writeln(m,' ',d);}
          t:=0;
          for j:=1 to m-1 do t:=t+day[j];
          t:=t+d;
          s[t]:=true;
     end;
     t:=0; max:=0;
     for i:=1 to 367 do
         if s[i] then
         begin
              if i-t-1>max then max:=i-t-1;
              t:=i
         end;
     writeln((max*24*60*60+183) div 366);
     close(input);
     close(output);
end.

我来回复

您尚未登录,请登录后再回复。点此登录或注册