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

探讨了在已有人坐在板凳上的情况下,新增人员如何坐下以求得最小和最大可能的人数分布问题。通过算法分析,计算并输出了最小可能的k和最大可能的k。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

有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=' ') 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值