P10184 whk 题解
T_TLucas_Yin · · 题解
首先要明白,要使得有趣的天数更多,就要懂得“节约”。一天要刷
又很容易发现,如果
如何判定一个
别忘了每一天都不有趣的情况。
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[1000005],sum;
bool check(long long k){
long long cnt=0;
for(int i=1;i<=n;i++){
if(a[i]>=k) cnt+=k;
else cnt+=a[i];
}
return cnt>=k*m;//判断有没有超过(够不够刷)
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){ cin>>a[i];sum+=a[i]; }
long long l=0,r=sum,mid,k=0;//!下限天数为0!
while(l<=r){
mid=(l+r)>>1;
if(check(mid)) l=mid+1,k=mid;
else r=mid-1;
}
cout<<k;
return 0;
}