比赛 |
20160707 |
评测结果 |
AAAAAAAAAA |
题目名称 |
砍树 |
最终得分 |
100 |
用户昵称 |
ZXCVBNM_1 |
运行时间 |
0.601 s |
代码语言 |
C++ |
内存使用 |
7.94 MiB |
提交时间 |
2016-07-07 15:20:43 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define MAXN 1000010
LL n,a[MAXN];
LL check(LL k)
{
LL sum=0LL,i;
for(i=1;i<=n;i++)if(a[i]>=k)sum+=(a[i]-k);
return sum;
}
int main()
{
freopen("eko.in","r",stdin);
freopen("eko.out","w",stdout);
LL m,i,mx,l,r,ans,mid;
scanf("%lld %lld",&n,&m);
mx=-1;
for(i=1;i<=n;i++){scanf("%lld",&a[i]);mx=max(mx,a[i]);}
l=0;r=mx;ans=0;
while(l<=r)
{
mid=(l+r)/2;
if(check(mid)>=m){ans=mid;l=mid+1;}
else r=mid-1;
}
printf("%lld",ans);
return 0;
}