A. Benches
 

There are nn benches in the Berland Central park. It is known that aiai people are currently sitting on the ii-th bench. Another mm people are coming to the park and each of them is going to have a seat on some bench out of nn available.

Let kk be the maximum number of people sitting on one bench after additional mm people came to the park. Calculate the minimum possible kk and the maximum possible kk.

Nobody leaves the taken seat during the whole process.

Input

The first line contains a single integer nn (1≤n≤100)(1≤n≤100) — the number of benches in the park.

The second line contains a single integer mm (1≤m≤10000)(1≤m≤10000) — the number of people additionally coming to the park.

Each of the next nn lines contains a single integer aiai (1≤ai≤100)(1≤ai≤100) — the initial number of people on the ii-th bench.

Output

Print the minimum possible kk and the maximum possible kk, where kk is the maximum number of people sitting on one bench after additional mm people came to the park.

Examples
input

Copy
4
6
1
1
1
1
output

Copy
3 7
input

Copy
1
10
5
output

Copy
15 15
input

Copy
3
6
1
6
5
output

Copy
6 12
input

Copy
3
7
1
6
5
output

Copy
7 13
Note

In the first example, each of four benches is occupied by a single person. The minimum kk is 33. For example, it is possible to achieve if two newcomers occupy the first bench, one occupies the second bench, one occupies the third bench, and two remaining — the fourth bench. The maximum kk is 77. That requires all six new people to occupy the same bench.

The second example has its minimum kk equal to 1515 and maximum kk equal to 1515, as there is just a single bench in the park and all 1010people will occupy it.

题目大意:公园里有n个座位,一开始每个座位都有多少人(人数给出),公园里将进来m人,问这些人往座位上坐,那么座位上人数最多的那个能有多少人,最多人数最小化能有多少人?  

  自己还是太菜了啊,看了一下大佬的题解,发现思维真的太强了

  最多能有多少肯定好计算,把数组排序加上将要进来的人数就是,也就是代码中的kmax,问题是如何求得最小化的最大值呢?

  大佬还是先排序,排好序了,让数组下标从0开始,依次与数组最大值比较(这个比较好理解,因为要是不超过的话肯定数组最大值就是最大啊),

  然后,如果第i个元素和最大值相等,那么这个元素自增,并且m要自减,下面再来一个循环,只要这个元素比最大值小,那么这个元素就进行自增,m进行自减

  知道m为0或者这个元素不小于最大值了,如果这轮i==n了但是m还没有为0,那么此时就要重新将i赋值为0

  结束这层循环以后,要在外层循环中再次对数组进行排序,这个目的是为了更新最大值,最后输出就ok了

#include<iostream>
#include<algorithm>
using namespace std;
int arr[];
int n,m;
int kmax;
void solve()
{
int i=;
sort(arr,arr+n);
kmax=arr[n-]+m;
while(m!=)
{
if(arr[i]==arr[n-]&&m!=)
{
arr[i]++;
m--;
}
while(arr[i]<arr[n-]&&m!=)
{
arr[i]++;
m--;
}
i++;
if(i==n)
i=;
}
i=;
sort(arr,arr+n);//更新最大值
}
int main()
{
while(cin>>n>>m)
{
for(int i=;i<n;i++)
cin>>arr[i];
solve();
cout<<arr[n-]<<" "<<kmax<<endl;
}
return ;
}

CodeForce--Benches的更多相关文章

  1. Codeforce - Street Lamps

    Bahosain is walking in a street of N blocks. Each block is either empty or has one lamp. If there is ...

  2. Codeforce Round #216 Div2

    e,还是写一下这次的codeforce吧...庆祝这个月的开始,看自己有能,b到什么样! cf的第二题,脑抽的交了错两次后过了pretest然后system的挂了..脑子里还有自己要挂的感觉,果然回头 ...

  3. Codeforce 水题报告(2)

    又水了一发Codeforce ,这次继续发发题解顺便给自己PKUSC攒攒人品吧 CodeForces 438C:The Child and Polygon: 描述:给出一个多边形,求三角剖分的方案数( ...

  4. codeforce 375_2_b_c

    codeforce 375_2 标签: 水题 好久没有打代码,竟然一场比赛两次卡在边界条件上....跪 b.题意很简单...纯模拟就可以了,开始忘记了当字符串结束的时候也要更新两个值,所以就错了 #i ...

  5. codeforce 367dev2_c dp

    codeforce 367dev2_c dp 标签: dp 题意: 你可以通过反转任意字符串,使得所给的所有字符串排列顺序为字典序,每次反转都有一定的代价,问你最小的代价 题解:水水的dp...仔细想 ...

  6. 三维dp&codeforce 369_2_C

    三维dp&codeforce 369_2_C 标签: dp codeforce 369_2_C 题意: 一排树,初始的时候有的有颜色,有的没有颜色,现在给没有颜色的树染色,给出n课树,用m种燃 ...

  7. 强连通分量&hdu_1269&Codeforce 369D

    强连通分量 标签: 图论 算法介绍 还记得割点割边算法吗.回顾一下,tarjan算法,dfs过程中记录当前点的时间戳,并通过它的子节点的low值更新它的low,low值是这个点不通过它的父亲节点最远可 ...

  8. 【树状数组】区间出现偶数次数的异或和(区间不同数的异或和)@ codeforce 703 D

    [树状数组]区间出现偶数次数的异或和(区间不同数的异或和)@ codeforce 703 D PROBLEM 题目描述 初始给定n个卡片拍成一排,其中第i个卡片上的数为x[i]. 有q个询问,每次询问 ...

  9. 解题报告:codeforce 7C Line

    codeforce 7C C. Line time limit per test1 second memory limit per test256 megabytes A line on the pl ...

  10. UVA 11578 - Situp Benches(dp)

    题目链接:11578 - Situp Benches 题意:健♂身♂房有两个仰卧起坐坐垫,每次调整角度要花费10元/10度,每次使用要花费15,如今给定n个人的时间顺序,和所希望的角度,求最少花费 思 ...

随机推荐

  1. Magic Maze dfs + dp

    http://swjtuoj.cn/problem/2387/ 设dp[cur]表示以cur这个节点为起点的时候,能走的最大贡献. 题目保证没环,也就是没回路. 感觉和树dp差不多了. #includ ...

  2. 看懂物联网fr

        看懂物联网 2015-10-11 物联网世界 1.第三次IT浪潮 互联网时代的特征是信息驱动了生产力,无论众包.订单式生产这些理论:还是B2C.O2O各类业务模式:归根结底,是信息优化了生产关 ...

  3. Xamarin.Form的坑

    首先说到xamarin.Forms的安装,简直是坑+坑+坑,为什么呢,有些坑你完全意想不到,比如说你改名字后报错,比如说上份代码能运行,在这里就不能运行,具体先将坑说说吧 坑1 文件名,动不动就报什么 ...

  4. Python定时任务sched(一)

    这里介绍一下python中定时任务:sched python中自带的是sched,也可以通过pip下载schedule进行任务定时处理,这里先简单介绍下sched的使用 import datetime ...

  5. gitlab api批量操作 批量添加用户

    import os,time import requests,json # def downloadFile(name, url): # headers = {'Proxy-Connection': ...

  6. ORACLE中能否找到未提交事务的SQL语句

      在Oracle数据库中,我们能否找到未提交事务(uncommit transactin)的SQL语句或其他相关信息呢?  关于这个问题,我们先来看看实验测试吧.实践出真知. 首先,我们在会话1(S ...

  7. AdonisJs(Node框架)学习总结

    先列出作为前端开发人员必须知道的10个NodeJs框架  AdonisJs 一个服务端渲染的MVC框架,它是 Laravel (PHP框架)的一个 NodeJS 版本. 可以安装脚手架工具adonis ...

  8. MVC的验证码

    后台: /// <summary> /// 创建验证码的图片 /// </summary> /// <param name="validateCode" ...

  9. 2407: C语言习题 整数转换成字符串

    2407: C语言习题 整数转换成字符串 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 917  Solved: 416[Submit][Status] ...

  10. 《剑指offer》56 数组中只出现一次的数字

    题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字.   在线练习:https://www.nowcoder.com/practice/e02fdb5 ...