91pts求助

P1638 逛画展

$$ \#5的数据是只有l=1,r=500才行 $$ $特判$
by xingcode @ 2024-03-19 20:48:59


@[Channel_09](/user/787888) ``` #include<bits/stdc++.h> #define int long long using namespace std; const int N=2005; int tot[N],m,cnt[N],minn=1e18,a[(int)1e6],l,r; signed main(){ int n; cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; } int rt=0,lt=1,tmp=0; while(rt<n){ while(tmp<m && rt<n){ rt++; cnt[a[rt]]++; if(cnt[a[rt]]==1){ tmp++; } } while(tmp==m && lt<=rt){ int x=minn; minn=min(minn,rt-lt+1); if(minn!=x){ l=lt,r=rt; } cnt[a[lt]]--; if(cnt[a[lt]]==0){ tmp--; } lt++; } } cout<<l<<" "<<r; return 0; } ```
by huangmingyisunny1804 @ 2024-03-27 18:20:13


|