Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
110721 | 陈星云 | 花费 | C++ | 解答错误 | 0 | 0 MS | 248 KB | 484 | 2023-11-15 14:06:54 |
#include<bits/stdc++.h> using namespace std; int a[100010], n, m; bool chk(int k){ int now = 0, tot = 0; for(int i = 1 ; i <= n ; i ++){ if(now + a[i] > k){ tot ++; now = 0; if(tot > m)return false; } now += a[i]; } return true; } int main(){ cin >> n >> m; for(int i = 1 ; i <= n ; i ++) cin >> a[i]; int l = 1, r = INT_MAX; while(l < r){ int mid = (l + r) / 2; if(chk(mid)) r = mid; else l = mid + 1; } cout << l << '\n'; }