73pts #1 #2 #5 RE
  • 板块P1638 逛画展
  • 楼主ouyangdou
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/25 19:44
  • 上次更新2025/1/25 19:50:00
查看原帖
73pts #1 #2 #5 RE
1388282
ouyangdou楼主2025/1/25 19:44
#include<bits/stdc++.h>
using namespace std;
int id[1000005];
int cnt[2005];
int l1,r1;
int main(){
    int n,m;
    cin>>n>>m;
    int kk=0;
    int r;
    for(int i=1;i<=n;i++)cin>>id[i];
    for(int i=1;i<=n;i++){
        cnt[id[i]]++;
        if(cnt[id[i]]==1)kk++;
        if(kk==m){r=i;break;}
    }
    l1=1;r1=r;
    for(int i=2;i<=n;i++){
        cnt[id[i-1]]--;
        if(cnt[id[i-1]]==0){
            while(1){
                r++;
                cnt[id[r]]++;
                if(cnt[id[i-1]]!=0)break;
                if(r==n){
                    cout<<l1<<' '<<r1;
                    return 0;
                }
            }
        }
        if(r-i<r1-l1){r1=r;l1=i;}
    }
    cout<<l1<<' '<<r1;
    return 0;
}

请问是为什么

2025/1/25 19:44
加载中...