比赛 |
2019级快乐小组模拟赛19.9.19 |
评测结果 |
ATAAAAATTT |
题目名称 |
月度花费 |
最终得分 |
60 |
用户昵称 |
cool |
运行时间 |
4.187 s |
代码语言 |
C++ |
内存使用 |
14.42 MiB |
提交时间 |
2019-09-19 16:01:50 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long n,m,mon[100005],l,r,ans;
bool judge(long long lin)/*判断这个答案是否合法*/
{
long long cnt=0,now=0;/*cnt为算了多少个月份,NOW表示当前这个月多少钱*/
for(int i=1;i<=n;++i)
{
now+=mon[i];
if(now>lin)
{
cnt++;
now=mon[i];
}
}
if(now)cnt++;
return cnt<=m;
}
int main()
{
freopen("expense.in","r",stdin);
freopen("expense.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=n;++i)
{
cin>>mon[i];
l=max(l,mon[i]);
r+=mon[i];
}
while(l<=r)
{
long long mid=(l+r)/2;
if(judge(mid))
{
ans=mid;
r=r-1;
}
else
l+=1;
}
cout<<ans;
return 0;
}