C 公園坐椅子

2021-10-05 07:31:21 字數 886 閱讀 6313

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 表示公園中長...