求改
  • 板块灌水区
  • 楼主terry10
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/12/31 13:19
  • 上次更新2023/12/31 13:36:22
查看原帖
求改
696264
terry10楼主2023/12/31 13:19

P1638 27分

#include<bits/stdc++.h>
using namespace std;
int n,m;
int cnt;
int t[100001];
int a[1000001];
int l,r;
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    l=r=0;
    int ans=1e9,ansl=0,ansr=0;
    while(l<=r&&r<=n){
        if(cnt==m){
            if(ans>r-l){
                ans=r-l,ansl=l,ansr=r;
            }
            l++;
            if(t[a[l]]==1)cnt--;
            a[a[l]]--;
        }
        else{
            r++;
            if(t[a[r]]==0)cnt++;
            t[a[r]]++;
        }
    }
    if(ansl!=0)cout<<ansl+1<<" "<<ansr;
    else cout<<"1 "<<n;
    return 0;
}

(我感觉没问题啊??QAQ)

2023/12/31 13:19
加载中...