记录编号 |
350990 |
评测结果 |
AAAAAAAAAA |
题目名称 |
画展 |
最终得分 |
100 |
用户昵称 |
Kulliu |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.019 s |
提交时间 |
2016-11-16 08:40:58 |
内存使用 |
0.41 MiB |
显示代码纯文本
#include<functional>
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cctype>
#include<vector>
#include<cstdio>
#include<queue>
#include<cmath>
#include<ctime>
#include<list>
#include<map>
#include<set>
using namespace std;
#define F(i,l,r) for(int i=l;i<=r;i++)
#define D(i,r,l) for(int i=r;i>=l;i--)
typedef long long LL;
typedef double ld;
const int INF=0x7f7f7f7f;
const int N=1000010,M=2010;
int bok[M],a[N],n,m,t,minl=INF,L,R;
inline void read(int &v){
v=0;char ch=getchar();
while(ch<'0'||ch>'9')ch=getchar();
while(ch<='9'&&ch>='0')v=v*10+ch-48,ch=getchar();
}
int Main(){
freopen("exhibit.in","r",stdin);
freopen("exhibit.out","w",stdout);
read(n),read(m);
F(i,1,n)read(a[i]);
int l=1,r=0;
while(r<=n){
r++;
if(!bok[a[r]])t++;
bok[a[r]]++;
if(t==m){
while(l<=r){
if(bok[a[l]]==1)break;
bok[a[l++]]--;
}
if(r-l+1<minl){
minl=r-l+1;
L=l;R=r;
}
}
}
printf("%d %d\n",L,R);
return 0;
}
int start =Main();
int main(){;}