小信反转串 WA88

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n, k;
string s;
int main() {
    cin>>n>>k;
    cin>>s;
    ll cnt0=!s[0]?1:0;
    ll l=0,r=0;
    ll ans=0;
    bool eflag=!s[0]?1:0;
    while(r<n){
        if(cnt0>k){
            while(cnt0>k && l<n){
                if(s[l]=='0' && s[l+1]=='1'){
                    cnt0--;
                }
                l++;
            }
        }
        r++;
        if(s[r]=='0'){
            if(eflag==false){
                eflag=true;
                cnt0++;
            }
        }else{
            eflag=false;
        }
        ans=max(ans,r-l);
    }
    cout<<ans;
    return 0;
}

有没有人帮本蒟蒻调一下代码

错误提示:两个大数据挂了

题面发一下谢谢