Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
128177 | zhangyang | 花费 | C++ | 解答错误 | 50 | 0 MS | 260 KB | 781 | 2024-01-25 14:15:21 |
#include<iostream> #include<algorithm> using namespace std; #define int long long int m,n,a[100005]; const int N=1e7+1; bool check(int x){ int cnt=0,sum=0; for(int i=1;i<=n;i++){ sum+=a[i]; if(sum>x){ sum=0; cnt++; i--; } } if(sum) cnt++; if(cnt>=m) return true; return false; } int binary_search(int start, int end) { int mid; while (start < end) { mid = (start+end+1)>>1; if (check(mid)) start = mid; else end = mid - 1; } return start; } signed main(){ cin>>n>>m; int l=-1,r=0; for(int i=1;i<=n;i++) { cin>>a[i]; l=max(l,a[i]); r+=a[i]; } cout<<binary_search(l,r); return 0; }