您的位置:首页 > 其它

Yemaster摘苹果题解 Pascal

2017-02-07 00:00 148 查看

Yemaster摘苹果

时间限制: 1 Sec内存限制: 128 MB
[提交][状态][讨论版]

题目描述

Yemaster家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,Yemaster就会跑去摘苹果。Yemaster有个n厘米高的板凳,当他不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知10个苹果到地面的高度,以及Yemaster把手伸直的时候能够达到的最大高度,请帮Yemaster算一下他能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

输入

输入文件apple.in包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示Yemaster把手伸直的时候能够达到的最大高度和一个整数n,表示板凳的高度,不会超过30,单位:cm。

输出

输出文件apple.out包括一行,这一行只包含一个整数,表示Yemaster能够摘到的苹果的数目。

样例输入

100 200 150 140 129 134 167 198 200 111
110 30


样例输出

5


分析

此题可以先算出Yemaster能够到的最高高度,然后给苹果排序,去掉Yemaster不能够到的苹果,算出总数即可

源程序

var


a:
array
[
1..12
]
of
longint
;


n,i,m:
longint
;


procedure
qsort(l,r:
longint
);//快排,也可以用其他排序


var


i,j,m,t:
longint
;


begin


i:=l;


j:=r;


m:=a[(l+r)
div
2
];


repeat


while
a[i]<m
do
i:=i+
1
;


while
a[j]>m
do
j:=j-
1
;


if
not
(i>j)
then


begin


t:=a[i];


a[i]:=a[j];


a[j]:=t;


i:=i+
1
;


j:=j-
1
;


end
;


until
i>j;


if
l<j
then
qsort(l,j);


if
i<r
then
qsort(i,r);


end
;


begin


for
i:=
1
to
10
do


read(a[i]);


readln(n,m);


n:=n+m
;


qsort(
1
,
10
);


while
n<a[i]
do


dec(i);


writeln
(i);


end
.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: