tle,只过了第四个点,求助
查看原帖
tle,只过了第四个点,求助
1125306
xiaojie04楼主2024/3/11 20:12
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e5 + 9;
int a[N], n, m, ans = 0, l, r, mid;
bool check(int x){
    int cnt = 1, t = 0;
    for(int i = 1;i <= n; ++i){
        if(t + a[i] <= x) t += a[i];
        else{
            t = a[i];
            cnt ++;
        }
    }
    return cnt >= m;
}
int main(){
    cin >> n >> m;
    for(int i = 1;i <= n; ++i){
        cin >> a[i];
        l = max(l, a[i]);
        r += a[i];
    }
    while(l < r){
        mid = (l + r) >> 1;
        if(check(mid)) l = mid;
        else r = mid;
    }
    cout << l << endl;
    return 0;
}
2024/3/11 20:12
加载中...