/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 540.0 KiB
#2 Wrong Answer 6ms 540.0 KiB
#3 Wrong Answer 7ms 540.0 KiB

Code

#include <bits/stdc++.h>
#define pb push_back
#define pi 2*acos(0.0)
#define f first
#define s second
#define inf INT_MAX
#define MXN 500001
#define endl "\n"
#define eps 1e-6
#define mod 1000000007
#define all(x) x.begin(), x.end()
#define rev(x) x.rbegin(), x.rend()
#define spc(x) cout << fixed << setprecision(x)
#define fastio {ios_base::sync_with_stdio(false); cin.tie(NULL);}

typedef long long ll;
using namespace std;

int ok(int N, int K, const string& S) {
    vector<int> zeroIndices;
    for (int i = 0; i < N; ++i) {
        if (S[i] == '0') {
            zeroIndices.push_back(i);
        }
    }
    
    if (zeroIndices.size() <= K) {
        return N;
    }
    
    int maxLen = 0;
    int left = 0;
    
    for (int right = 0; right < zeroIndices.size(); ++right) {
        if (right - left + 1 > K) {
            left++;
        }
        int windowStart = (left == 0) ? 0 : zeroIndices[left - 1] + 1;
        int windowEnd = (right == zeroIndices.size() - 1) ? N - 1 : zeroIndices[right + 1] - 1;
        maxLen = max(maxLen, windowEnd - windowStart + 1);
    }
    
    return maxLen;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    
    int T;
    cin >> T;
    
    while (T--) {
        int N, K;
        cin >> N >> K;
        string S;
        cin >> S;
        int cnt=0;
        for(auto i:S){
            if(i=='1') cnt++;
        }
        cout << min(cnt,ok(N, K, S)) << '\n';
    }
    
    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 16:56:22
Judged At
2025-02-17 16:56:22
Judged By
Score
0
Total Time
7ms
Peak Memory
540.0 KiB