#include<cstdio>
#include<iostream>
using namespace std;
int l,r,m,n,a[],ans;
bool pan(int x)
{
int a1=min(x,m);
for(int i=;i<=n;i++)
if(a[i]<x)
{
a1-=x-a[i];
if(a1<)
return ;
}
return ;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
l=;
r=;
for(;l<=r;)
{
int mid=(l+r)>>;
if(pan(mid))
{
l=mid+;
ans=mid;
}
else
r=mid-;
}
printf("%d\n",ans);
return ;
}

二分答案判断是否可行。

其实我还有一种想法,只是一直没对,以后要对拍一下。

 #include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
long long a[],n,m,sum,q1=0x7ffffffffLL,q2=0x7ffffffffLL;
bool f;
int main()
{
scanf("%lld%lld",&n,&m);
for(int i=;i<=n;i++)
scanf("%lld",&a[i]);
sort(a+,a+n+);
for(int i=;i<=n;i++)
{
if(m-(i-)*(a[i]-a[i-])<)
{
f=;
q1=m/(i-)+a[i-];
}
m-=(i-)*(a[i]-a[i-]);
if(sum+(i-)*(a[i]-a[i-])>a[i])
{
f=;
q2=(sum-(i-)*a[i-])/(-i);
}
if(f)
break;
sum+=(i-)*(a[i]-a[i-]);
}
printf("%lld",min(a[n],min(q1,q2)));
return ;
}

最新文章

  1. CSS margin详解
  2. Actor模型前奏
  3. 瘋子C语言笔记(指针篇)
  4. C++/C互相调用
  5. 4.1---二叉树是否平衡(CC150)
  6. 手机页面的meta标签
  7. C++一个简单的类
  8. 二模 (3) day2
  9. mini6410-JNI-led
  10. 截取字符串一之substr
  11. Tomcat access log配置
  12. 使用scrapy爬虫,爬取起点小说网的案例
  13. openstack项目【day23】:keystone组件HTTP协议
  14. C语言的“编译、链接”
  15. 【BZOJ3874】[AHOI&amp;JSOI2014]宅男计划(贪心,三分)
  16. springboot13 发布和监听事件
  17. Spring Cloud配置中心(Config)
  18. HTML页面滚动时获取离页面顶部的距离2种实现方法
  19. cb &amp;&amp; cb() 和 a || {}
  20. ELK日志平台

热门文章

  1. 巧妙的实现 CSS 斜线(炫酷的小效果)
  2. Linux socket编程应用学习笔记
  3. 5.6 a、b交换
  4. 基础4 Android基础
  5. STM32学习笔记(三) STM32的GPIO的深入学习
  6. 转!!EL表达式大全
  7. c#动态创建ODBC数据源
  8. HTTP Status 500 - An exception occurred processing at line 35
  9. java的IO流
  10. JavaScript 运行机制详解:再谈Event Loop