题目
思路
计算其他椅子与人最多的椅子的人数差的和,如果差和大于后来的人数,则最小值为之前人数最多的椅子上的人数,否则最小值为(人数/椅子数,有余数则+1)。最大值为原来的最大值加上后来的人数。
代码
#include <iostream>
#define maxn 110
using namespace std;
int main() {
int x,y,a[maxn],b[maxn];
int max_=0,rest=0,mn,mx;
cin>>x>>y;
for(int i=1;i<=x;i++) {
cin>>a[i];
max_=max(a[i],max_);
}
for(int i=1;i<=x;i++) {
b[i]=max_-a[i];
rest+=b[i];
}
mx=max_+y;
if(y<=rest) mn=max_;
else if((y-rest)%x==0) mn=max_+(y-rest)/x;
else mn=max_+(y-rest)/x+1;
cout<<mn<<' '<<mx<<endl;
return 0;
}