又是一年秋季時,陶陶家的蘋果樹結了n個果子。陶陶又跑去摘蘋果,這次她有乙個a公分的椅子。當他手夠不著時,他會站到椅子上再試試。
這次與noip2005普及組第一題不同的是:陶陶之前搬凳子,力氣只剩下s了。當然,每次摘蘋果時都要用一定的力氣。陶陶想知道在s<0之前最多能摘到多少個蘋果。
現在已知n個蘋果到達地上的高度xi,椅子的高度a,陶陶手伸直的最大長度b,陶陶所剩的力氣s,陶陶摘乙個蘋果需要的力氣yi,求陶陶最多能摘到多少個蘋果。
輸入格式:
第1行:兩個數 蘋果數n,力氣s。
第2行:兩個數 椅子的高度a,陶陶手伸直的最大長度b。
第3行~第3+n-1行:每行兩個數 蘋果高度xi,摘這個蘋果需要的力氣yi。
輸出格式:
只有乙個整數,表示陶陶最多能摘到的蘋果數。
輸入樣例#1:
8 1520 130
120 3
150 2
110 7
180 1
50 8
200 0
140 3
120 2
輸出樣例#1:
4
var
ans,n,m,sou,den,i,j,dai,dai2,s2:longint;
a:array[1..10000]of longint;
begin
read(n,m);
read(den,sou);
sou:=den+sou;
for i:=1 to n do
begin
read(dai);
if dai<=sou then//判斷高度是否夠,不夠去掉
begin
inc(s2);//統計有多少個高度夠
read(a[s2])
endelse
read(dai2);//因為高度不夠,所以直接把力度不儲存
end;
for i:=1 to s2-1 do
for j:=i+1 to s2 do
if a[i]>a[j] then
begin
dai:=a[i];a[i]:=a[j];a[j]:=dai;
end;
for i:=1 to s2 do
if (m>0) and (m-a[i]>=0) then
begin
inc(ans);//統計拿到的個數
m:=m-a[i];
end;
if n=0 then write('0')//邊界
else write(ans);
end.
洛谷 陶陶摘蘋果(公升級版)
輸入8 15 20 130 120 3 150 2 110 7 180 1 50 8 200 0 140 3 120 2 輸出 本題其實不難 只要別想得複雜 思路 乙個個輸入高度和力氣,若高度滿足,則將其力氣放入乙個新陣列。將新陣列進行排序,再迴圈相減輸出即可。如下 n蘋果,a b最大高度,s力氣,...
P1478 陶陶摘蘋果(公升級版)
大佬說要用貪心 0 1揹包 並沒看出來 其實是因為不知道那是什麼東西 又是一年秋季時,陶陶家的蘋果樹結了n個果子。陶陶又跑去摘蘋果,這次她有乙個a公分的椅子。當他手夠不著時,他會站到椅子上再試試。這次與noip2005普及組第一題不同的是 陶陶之前搬凳子,力氣只剩下s了。當然,每次摘蘋果時都要用一定...
P1478 陶陶摘蘋果 公升級版
又是一年秋季時,陶陶家的蘋果樹結了n個果子。陶陶又跑去摘蘋果,這次她有乙個a公分的椅子。當他手夠不著時,他會站到椅子上再試試。這次與noip2005普及組第一題不同的是 陶陶之前搬凳子,力氣只剩下s了。當然,每次摘蘋果時都要用一定的力氣。陶陶想知道在s 0之前最多能摘到多少個蘋果。現在已知n個蘋果到...