记录编号 287952 评测结果 AAAAAAAAAA
题目名称 画展 最终得分 100
用户昵称 GravatarSOBER GOOD BOY 是否通过 通过
代码语言 C++ 运行时间 0.102 s
提交时间 2016-08-02 16:02:28 内存使用 15.57 MiB
显示代码纯文本
//GOOD BOY
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<deque>

using namespace std;

const int maxn=1000010;

int N,M;

struct node
{
	int pos,data;
}A[maxn];
int cnt[maxn*2];
int main()
{
	freopen("exhibit.in","r",stdin);
	freopen("exhibit.out","w",stdout);
	deque<int> q;
 	scanf("%d%d",&N,&M);
 	int tot=0,last,d=N;
	for(int i=1;i<=N;i++)
	{
		scanf("%d",&A[i].data);
		A[i].pos=i;
		if(tot<M)
		{
			q.push_back(i);
			cnt[A[i].data]++;
			if(cnt[A[i].data]==1)tot++;
			last=i+1;
			d=i;
		} 
	}
	while(cnt[A[q.front()].data]>1)
	{
		cnt[A[q.front()].data]--;q.pop_front();
	}
	d=d-A[q.front()].pos+1;
	int l=q.front(),r=d+l-1;
	for(int i=last;i<=N;i++)
	{
		q.push_back(i);
		cnt[A[i].data]++;
		while(cnt[A[q.front()].data]>1)
		{
			cnt[A[q.front()].data]--;q.pop_front();
		}
		if(A[i].pos-A[q.front()].pos+1<d)
		{
			l=A[q.front()].pos,r=A[i].pos;
			d=A[i].pos-A[q.front()].pos+1;
		}
	}
	printf("%d %d",l,r);	
	return 0;
}