/ SeriousOJ /

Record Detail

Wrong Answer


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

Code

// Authored by Ibrahimfostok...
// Next level : "Master"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 998244353;
// const ll mod = 1e9 + 7;
#define gcd __gcd
#define int ll
#define ld long double
#define lcm(a, b) (a * b / gcd(a, b))
#define ceil(x, y) (((x) + (y) - 1ll) / (y))
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define pb push_back
#define MOD(x) x = ((x % mod) + mod) % mod
const long double pi = 3.14159265358979323846;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll rand(ll L, ll R)
{
    return uniform_int_distribution<ll>(L, R)(rng);
}
//
void My_Solve(int TC)
{
    // cout << setprecision(10) << fixed;
    int n, k;
    cin >> n >> k;
    string s;
    cin >> s;
    int cnt = 0;
    vector<int> a;
    for (int i = 0; i < n; i++)
    {
        if (s[i] == '0')
        {
            if (cnt)
                a.push_back(cnt), cnt = 0;
        }
        else
        {
            cnt++;
        }
    }
    if (cnt)
        a.push_back(cnt);
    vector<int> pre(a.size() + 1);
    for (int i = 0; i < a.size(); i++)
        pre[i + 1] = pre[i] + a[i];
    int ans = 0;
    for (int i = 1; i <= a.size(); i++)
    {
        ans = max(ans, pre[min((int)a.size(), i + k)] - pre[i - 1]);
    }
    cout << ans << '\n';
}
int32_t main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    // freopen("input.txt", "r", stdin);
    // freopen("output.txt", "w", stdout);
    int t = 1;
    cin >> t;
    for (int i = 1; i <= t; i++)
        My_Solve(i);
    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:05:00
Judged At
2025-02-17 15:05:00
Judged By
Score
0
Total Time
7ms
Peak Memory
536.0 KiB