问题标题: 酷丁编程:14483遇到问题

0
0
已解决
于行衍
于行衍
中级天翼
中级天翼

题目链接: 酷丁编程:14483

#include<bits/stdc++.h>
using namespace std;
long long n, c, a[505];
bool check(long long mid) {
    long long cnt=1,sum=0;
    for(long long i=1; i <= n; i++) {
        if(a[i]>mid) return 0;
        if(sum+a[i]>mid) {
            cnt++;
            sum=a[i];
        } else {
            sum+=a[i];
        }
    }
    return cnt <= c;
}
int main() {
    cin >> n >> c;
    for(long long i=1; i <= n; i++) {
        cin >> a[i];
    }
    long long l = 0, r =1000000000, ans;
    while(l <= r) {
        long long mid=(l+r)/2;
        if(check(mid)) {
            ans = mid;
            r = mid-1;
        } else {
            l = mid+1;
        }
    }
    cout<<ans;
    return 0;
}

到底怎么写才能到100分啊,总是WA70分


0
已采纳
石峻帆
石峻帆
新手光能
新手光能

1.long long

2.答案初值应该是所有的和(只有一个工人)

0
我要回答