招商银行机器学习算法笔试编程题----坐板凳

题目描述

有n个板凳,已知有a_{i}个人坐在第i根板凳上。现在又来了m个人,选择其中的一个板凳坐下。假设所有人坐下以后,所有板凳坐了若干个人,其中人数最多的为k。计算出最小可能的k和最大可能的k。(整个过程中,无人离开)

输入描述

第一行一个整数n,表示板凳的个数

第二行一个整数m,表示来的人数

接下来n行,每行一个整数a_{i},表示第i根板凳上坐的人数

满足1<=n<100,1<=m<=10000,1<=a_{i}<=100.

输出描述

一行两个整数,用一个空格分隔,第一个表示最小的可能k,第二个表示最大的可能k。

示例1

输入

2
1
3
2

输出

3 4

示例2

输入

2
1
2
1

输出

2 3

代码实现

n=int(input())
m=int(input())
a=[]
for i in range(n):
    a.append(int(input()))
max_old=max(a)
#最大可能的k
max_max=max_old+m
#最小可能的k
if max_old*len(a)-sum(a)>m:
    max_min=max_old
else:
    max_min=(sum(a)+m)//len(a)
    if (sum(a)+m)%len(a)==0:
        max_min=max_min
    else:
        max_min=max_min+1
#输出数字与空格
out=[]
out.append(max_min)
out.append(max_max)
for item in out:
    print(item, end=' ') 

 

你可能感兴趣的:(python基础)