54分求助qwq!
查看原帖
54分求助qwq!
270854
二叉苹果树楼主2022/8/7 00:13
#include<bits/stdc++.h>
using namespace std;
int vis[1000005];
int cnt;
int a[1000005],m,n,ai,bi,minn;
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    int l=1,r=1;
    while(cnt<=m-1)
    {
        vis[a[r]]++;
        if(vis[a[r]]==1)
            cnt++;
        r++;
    }
    r--;
    minn=r,ai=1,bi=r;
    while(l<=r&&r<=n)
    {
        int now=a[l];
        l++;
        vis[now]--;
        if(vis[now]==0)
        {
            while(r<=n)
            {
                r++;
                if(a[r]==now)
                {
                    vis[now]++;
                    break;
                }
            }
        }
        if(r-l+1<minn)
        {
            minn=r-l+1;
            ai=l;
            bi=r;
        }
    }
    printf("%d %d\n",ai,bi);
    return 0;
}

为啥后面的数据wa的整整齐齐啊。。。

2022/8/7 00:13
加载中...