【二分答案】买礼物的艰辛

小X面临在N件礼物中选择购买顺序,以最小化借款量的问题。M位同学愿意帮忙,但输入有误导致实际是m+1人。解决方案是通过二分搜索在礼物最大价格和总价格之间找到最高借款量。
摘要由CSDN通过智能技术生成

小X同学给小C同学选了N件礼物,决定顺序购买并赠送,但作为一个没有工资没有零花钱的可怜小朋友,有M位好心的同学伸出了援助之手,然而为了减少最高的借款量,小X同学希望OI竞赛的你为他合理规划,使得他能轻松快乐地送出礼物。

Input

第一行输入两个用空格隔开的正整数N和M
以下N行每行一个不超过10000正整数,依次表示礼物的价格。

Output

一个整数,即最高借款量。


题目有bug,然而实际上是m+1个人,然后我就A了。。。
答案的范围在最大的a[i]到所有a[i]的和之间,然后二分mid。
按顺序取,如果能借mid或mid以内的钱话r=mid,否则l=mid+1
输出答案。

#include<cstdio>
#include<iostream>
using namespace std; 
int n,m,a[100001],l;
long long r,mid;
int main
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值