USACO 2004 height

来源:百度知道 编辑:UC知道 时间:2024/06/13 05:43:12
问题描述:
农场有n头牛,每头牛都有自己喜欢的围栏高度pi,1 n, pi 10000。现在,为了使得超过一半的牛感到满意,农民约翰准备建造高度分段的围栏。只要围栏中有一段等于某一头牛喜欢的围栏高度,这头牛就满意了。问在这个前提下,围栏高度的最大值和最小值差距的最小值。

输入格式:
第一行是整数n。
接下来的n行,每行一个整数,分别表示每头牛喜欢的围栏高度。

输出格式:
一个整数,表示围栏高度的最大值和最小值差距的最小值。

输入输出样例:
height.in
3
1
10
3

height.out
2

说明:围栏的高度有1和3,使得2头牛满足,超过一半,且3-1=2。

我直接给出main吧。
begin
readln(n);
t[0]:=0;
for i:=1 to n do begin
read(a[i]);
t[i]:=t[i-1]+a[i];
end;
min:=maxlongint;
for i:=1 to n-n div 2 do
if t[i+n div 2+1]-t[i-1]>min then min:=t[i+n div 2+1]-t[i-1];
writeln(min);
end.

来自:求助得到的回答