1 条题解

  • 0
    @ 2026-1-8 15:38:35
    #include<bits/stdc++.h>
    using namespace std;
    int n,l,r,c[1000010],a[1000010],ans,k,t,f=1;
    int main(){
        cin>>n;
        for(int i=1;i<=n;i++){
            cin>>a[i];
        }
        cin>>k;
        l=1,r=1,c[a[1]]++,a[n+1]=a[n];
        while(r<=n&&l<=n){
            if(f==1){
                ans=max(ans,r-l+1);
                r++;
                c[a[r]]++;
                if(c[a[r]]>k){
                    f=0;
                    t=a[r];
                }
            }else{
                c[a[l]]--;
                l++;
                if(c[t]<=k){
                    f=1;
                }
            }
        }
        cout<<ans;
        return 0;
    }
    
    
    • 1

    信息

    ID
    5639
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    1
    已通过
    1
    上传者