/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 540.0 KiB
#2 Wrong Answer 17ms 540.0 KiB
#3 Wrong Answer 19ms 560.0 KiB

Code

// I AM A MUSLIM

#include "bits/stdc++.h"

#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")

#define fast_io std::ios::sync_with_stdio(0);std::cin.tie(0)
#define lli long long int
#define flush fflush(stdout)
#define line printf("\n")
#define yn(a, b) printf("%s\n", (a) >= (b) ? "Yes":"No")
#define amodm(a, M) (((a)%M+M)%M)
// #define int lli

using pii = std::pair<int,int>;

const int MOD = 1000000007;
const int mxN = 500100;

signed main() {
    int testCases=1;
    scanf("%d",&testCases);
    
    for (int TC = 1; TC <= testCases; TC++) {
        int n;
        scanf("%d",&n);
        int k;
        scanf("%d",&k);
        std::string s; std::cin >> s;
        int cur = 0;
        std::vector<int> a;
        for (auto &c : s) {
            if (c == '0') {
                if (cur) a.push_back(cur);
                cur = 0;
            } else cur++;
        }
        if (cur) a.push_back(cur);
        
        if (k >= (int)a.size()-1) {
            printf("%d\n", std::accumulate(a.begin(), a.end(), 0));
        } else {
            int ans = 0, sum = 0;
            for (int i = 0; i <= k; i++) {
                sum += a[i];
            }
            ans = sum;
            for (int i = k+1; i < (int)a.size(); i++) {
                sum -= a[i-k-1];
                sum += a[i];
                if (sum > ans) ans = sum;
            }
            printf("%d\n", ans);
        }
        
    }
    
    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:01:59
Judged At
2025-02-17 15:01:59
Judged By
Score
0
Total Time
19ms
Peak Memory
560.0 KiB