/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 540.0 KiB
#2 Accepted 19ms 540.0 KiB
#3 Accepted 24ms 556.0 KiB
#4 Accepted 13ms 540.0 KiB
#5 Accepted 13ms 540.0 KiB
#6 Accepted 14ms 1.047 MiB
#7 Accepted 6ms 1.188 MiB
#8 Accepted 6ms 1.441 MiB
#9 Accepted 18ms 4.965 MiB
#10 Accepted 19ms 5.105 MiB
#11 Accepted 7ms 2.277 MiB
#12 Accepted 7ms 2.277 MiB
#13 Accepted 34ms 8.07 MiB
#14 Accepted 7ms 2.402 MiB

Code

#include <bits/stdc++.h>

using namespace std;

#define int long long

int32_t main() {
    int t;
    cin >> t;
    for(int q=0; q<t; ++q) {
        int length, k;
        cin >> length >> k;
        int vec[length];
        string str;
        cin >> str;
        for(int i=0; i<length; ++i) vec[i]=str[i]-48;
        multiset<int> consecutive_ones;
        int cnt=0, flag=0;
        for(auto elem:vec) {
            if(elem==1) {
                cnt++;
                flag=1;
            }
            else if(elem==0 && flag && cnt) consecutive_ones.insert(cnt), cnt=0;
        }
        if(cnt) consecutive_ones.insert(cnt), cnt=0;
        int ans=0;
        vector<int> vec1;
        for(auto elem : consecutive_ones) vec1.push_back(elem);
        reverse(vec1.begin(), vec1.end());
        for(auto elem : vec1) {if(k+1) {ans+=elem; k--;}}
        cout << ans << endl;
    }
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1159 Binary String
Contest
Brain Booster #8
Language
C++17 (G++ 13.2.0)
Submit At
2025-02-17 15:21:28
Judged At
2025-02-17 15:21:28
Judged By
Score
100
Total Time
34ms
Peak Memory
8.07 MiB