sduqd 旁邊的濱海公園有 x 條長凳。第 i 個長凳上坐著 a_i 個人。這時候又有 y 個人將來到公園,他們將選擇坐在某些公園中的長凳上,那麼當這 y 個人坐下後,記k = 所有椅子上的人數的最大值,那麼k可能的最大值mx和最小值mn分別是多少。
input
第一行包含乙個整數 x (1 <= x <= 100) 表示公園中長椅的數目
第二行包含乙個整數 y (1 <= y <= 1000) 表示有 y 個人來到公園
接下來 x 個整數 a_i (1<=a_i<=100),表示初始時公園長椅上坐著的人數
output
輸出 mn 和 mx
input example37
161output example
6 13
這道題不難,思考之後就可以知道,可能的最大值就是後面來的所有人都坐在之前人數最多的椅子上。而要求最小值,可知最小值最少是之前的最大值,我們進行填平操作,即先將椅子上的人數都填平為之前的最大值,若是填不平那麼最小值就是之前的最大值,若是還超出,則均勻分配到每個椅子上即可。
#include
using
namespace std;
intmain()
int mx = y + max;
int mn;
int keng =0;
for(
int i =
1; i <= x; i++)if
(keng >= y)mn = max;
else
cout << mn <<
" "<< mx;
}
程式設計思維 week9 作業C 公園長凳
sduqd 旁邊的濱海公園有 x 條長凳。第 i 個長凳上坐著 a i 個人。這時候又有 y 個人將來到公園,他們將選擇坐在某些公園中的長凳上,那麼當這 y 個人坐下後,記k 所有椅子上的人數的最大值,那麼k可能的最大值mx和最小值mn分別是多少。第一行包含乙個整數 x 1 x 100 表示公園中長...