9pts求调
  • 板块P1638 逛画展
  • 楼主02Ljh
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/7/18 22:14
  • 上次更新2023/10/27 19:38:29
查看原帖
9pts求调
578004
02Ljh楼主2022/7/18 22:14
#include <bits/stdc++.h>
using namespace std;
int num[114514];
int box[114514];
int n,m,l,r,nu;
int main()
{
    cin>>n>>m;
    int minn=1145149,minl,minr;
    for(int i=0;i<n;i++)
    {
        cin>>num[i];
        /*if(i<m)
        {
            if(box[num[i]]==0) nu++;
            box[num[i]]++;
        }*/
    }
    //cout<<nu<<endl;
    for(l;l<n;l++)
    {
        r=l+m;
        while(nu!=m&&r<n)
        {
            r++;
            if(box[num[r]]==0) nu++;
            box[num[r]]++;
        }
        if(nu==m)
        {
            if((r-l)<minn)
            {
                minn=r-l;
                minl=l;
                minr=r;
            }
            else break;
        }
        box[num[l]]--;
        if(box[num[l]]==0) nu--;
    }
    cout<<minl+1<<" "<<minr+1;
    return 0;
}
/*
5 2
2 2 1 1 2

2 3
*/

2022/7/18 22:14
加载中...