class Solution {
public:
    int b[1000006];//第一次出现i个黑色块时的位置
    int tot=0;//目前有多少个黑色块
    int ans=0;//记录答案
    int solve(int n, int m, vector<int>& a) {
        b[0]=-1;//初始化
        for(int i=0;i<n;i++)
        {
            if(a[i]==0)
            {
                tot++;
                b[tot]=i;
                ans=max(ans,i-b[max(0,tot-m)]);//感谢 @Yuanirah 提出的错误
            }
            else{
                ans=max(ans,i-b[max(0,tot-m)]);
            }
        }
        return ans;
    }
};