時間限制: 1000 ms 空間限制: 262144 kb
題目描述
輸入第一行兩個正整數n和m,分別表示小朋友的數量和蘋果的數量。
第二行n個正整數,兩個整數間用乙個空格分開,第i個數hi表示第i個小朋友的跳躍高度。
第三行m個正整數,兩個整數間用乙個空格分開,第i個數pi表示第i個蘋果的高度。
輸出如果能夠摘完所有的蘋果,就輸出最小的體力花費,如果不能摘完,就輸出「bad luck」(不包括引號)。
樣例輸入
樣例輸入1
3 25 3 6
4 6樣例輸入2
3 34 2 3
3 3 4
樣例輸出
樣例輸出1
樣例輸出2
bad luck
資料範圍限制
100%的資料,1<=n,m<=1000,1<=hi,pi<=1000。
提示【樣例1解釋】
首先讓跳躍高度為5的小朋友去摘高度為4的蘋果,花費的體力值是5,然後讓跳躍高度為6的小朋友去摘高度為6個蘋果,花費的體力值是6,所以總共花費體力值11。
【樣例2解釋】
由於是3個小朋友摘3個蘋果,第2個小朋友的跳躍高度不足以摘到任何乙個蘋果,所以不能摘下所有的蘋果。
思路:首先我們需要將h和p陣列從小到大排序,然後雙層迴圈來看當前的蘋果有哪個小朋友能摘得了,注意乙個小朋友只能摘一次,我們每次判斷,如果這個蘋果誰都摘不了,那就證明不能夠全部摘完,所以按照題意輸出bad luck。如果全部都能摘,那最後輸出ans即可。
接下來上**:
#include
using
namespace std;
int h[
1001
],p[
1001
],s=0;
intmain()
sort
(h+1
,h+n+1)
;//排序h陣列
for(
int i=
1;i<=m;i++
)sort
(p+1
,p+m+1)
;//排序p陣列
int j=
1,flag=1;
for(
int i=
1;i<=m;i++)}
if(flag)
} cout<}
陶陶摘蘋果
試題描述 陶陶家的院子裡有一棵蘋果樹,每到秋天樹上就會結出10個蘋果。蘋果成熟的時候,陶陶就會跑去摘蘋果。陶陶有個30厘公尺高的板凳,當她不能直接用手摘到蘋果的時候,就會踩到板凳上再試試。現在已知10個蘋果到地面的高度,以及陶陶把手伸直的時候能夠達到的最大高度,請幫陶陶算一下她能夠摘到的蘋果的數目。...
陶陶摘蘋果
陶陶家的院子裡有一棵蘋果樹,每到秋天樹上就會結出10個蘋果。蘋果成熟的時候,陶陶就會跑去摘蘋果。陶陶有個30厘公尺高的板凳,當她不能直接用手摘到蘋果的時候,就會踩到板凳上再試試。現在已知10個蘋果到地面的高度,以及陶陶把手伸直的時候能夠達到的最大高度,請幫陶陶算一下她能夠摘到的蘋果的數目。假設她碰到...
淘淘摘蘋果
又是一年秋季時,陶陶家的蘋果樹結了n個果子。陶陶又跑去摘蘋果,這次她有乙個a公分的椅子。當他手夠不著時,他會站到椅子上再試試。這次與noip2005普及組第一題不同的是 陶陶之前搬凳子,力氣只剩下s了。當然,每次摘蘋果時都要用一定的力氣。陶陶想知道在s 0之前最多能摘到多少個蘋果。現在已知n個蘋果到...