pascal 天公!

来源:百度知道 编辑:UC知道 时间:2024/05/05 18:03:00
1. 到天宫做客
源程序名 heaven.??? (pas,c,cpp)
可执行文件名 heaven.exe
输入文件名 heaven.in
输出文件名 heaven.out

有一天,我做了个梦,梦见我很荣幸的接到了猪八戒的邀请,到天宫陪他吃酒。我犹豫了。天上一日,人间一年啊!当然,我是个闲人,一年之中也没有多少时日是必须在人间的,因此,我希望选一个最长的空闲时间段,使我在天上待的时间尽量长。记住,今年是4000年。天上一天也是24小时,每小时60分,每分60秒。
输入
输入文件的第一行是一个非负整数 N,表示4000年中必须呆在人间的天数,以下共N行,每行两个用空格隔开的正整数,即日期(月,日),输入文件保证无错误,日期无重复。

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

样例
heaven.in
2
3 8
12 2

heaven.out
63266c
天宫【程序】
Program heaven;
const
day:array[1..12]of shortint=(31,29,31,30,31,30,31,31,30,31,30,31);
var
n,i,j,x,max,t:longint;
m,d:array[1..1000]of integer;
begin
assign(input,'heaven.in');
assign(output,'heaven.out');
reset(input);
rewrite(output);
readln(n);
for i:=1 to n do
readln(m[i],d[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if (m[i]>m[j])or(m[i]=m[j])and(d[i]>d[j]) then begin
t:=m[i];
m[i]:=m[j];
m[j]:=t;
t:=d[i];
d[i]:=d[j];
d[j]:=t;
end;
j:=1;
max:=0;
x:=0;
for i:=1 to 12 do
if i<>m[j] then x:=x+day[i]
else begin
repeat
x:=x+d[j]-1;
if x>max then max:=x;
inc(j);;
x:=0;
until i<>m[j];
x:=x+31-d[j-1];
end;
writeln(max/366*24*60*60:0:0);
close(i