80分求助
查看原帖
80分求助
681292
banglee楼主2024/11/18 21:50

WA on #4。

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,l,r,a[100005];
bool check(int x) {
    int sum=0,cnt=0;
    for(int i=1;i<=n;i++) {
        if(sum+a[i]<=x) sum+=a[i];
        else sum=a[i],cnt++;
    }
    return cnt>=m;
}
signed main() {
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        cin>>a[i],l=max(l,a[i]),r+=a[i];
    while(l+1<r) {
        int mid=(l+r)/2;
        if(check(mid)) l=mid;
        else r=mid;
    }
    cout<<r;
    return 0;
}
2024/11/18 21:50
加载中...