[Offer收割]编程练习赛98 register

Ended

Participants:89

Verdict:Accepted
Score:100 / 100
Submitted:2019-03-31 13:21:33

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<iostream>
#include<algorithm>
#include<limits>
#include<vector>
using namespace std;
int main() {
    int64_t N, K;
    
    while(cin >> N >> K) {
        vector<int64_t> v(N);
        int64_t low = 0;
        int64_t high = 0;
        for(auto & i : v) {
            cin >> i;
            high += i;
        }
        int64_t res = -1;
        while(low <= high) {
            int64_t mid = low + (high - low) / 2;
            int64_t count = 0;
            int64_t cur = 0;
            for(auto i : v) {
                if(cur < mid) cur += i;
                else cur = i, count += 1;
            }
            count += cur >= mid;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX