比赛 |
20170919普及组 |
评测结果 |
AAAAAAAAAA |
题目名称 |
划分数列 |
最终得分 |
100 |
用户昵称 |
REALIZE_BEYOND |
运行时间 |
0.093 s |
代码语言 |
C++ |
内存使用 |
1.08 MiB |
提交时间 |
2017-09-19 14:33:07 |
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
long long num[100005],r=0,l=1000000000,mid,t1,t2;
int main(){
freopen("seqa.in","r",stdin);
freopen("seqa.out","w",stdout);
ios::sync_with_stdio(false);
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>num[i];
r+=num[i];
l=min(l,num[i]);
}
// cout<<l<<" "<<r<<"\n";
while(l!=r){
mid=(l+r)>>1;
t1=0;t2=1;
for(int i=1;i<=n;i++){
t1+=num[i];
if(t1==mid){
t2++;
t1=0;
}
else if(t1>mid){
t2++;
t1=num[i];
}
// cout<<t1<<" ";
}
if(t1==0) t2--;
// cout<<"\n";
// cout<<mid<<" "<<t2<<"\n";
if(t2<=k) r=mid;
else l=mid+1;
}
cout<<l;
return 0;
}