Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
128946 | 陆妍凯 | 花费 | C++ | 运行超时 | 0 | 1000 MS | 248 KB | 534 | 2024-01-26 13:18:18 |
#include<iostream> #include<cstdio> using namespace std; const int NR=100010; int n,m,a[NR]; bool check(int x) { int i,cnt=0,s=0; for(i=1;i<=n;i++) if(s+a[i]>x) { cnt++; s=0; } else s=s+a[i]; if(cnt<m) return false; return true; } int main() { int i,left=0,right,ans=0; cin>>n>>m; for(i=1;i<=n;i++) cin>>a[i]; while(left<right) { int mid=(left+right)/2; if(check(mid)==true) { left=mid; if(ans<mid) ans=mid; } else right=mid; } cout<<ans<<endl; return 0; }