| 比赛 | 
    NOIP_1 | 
    评测结果 | 
    AAAAAAAAAA | 
    | 题目名称 | 
    画展 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    CockRoachEr | 
    运行时间 | 
    0.000 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    0.00 MiB  | 
    | 提交时间 | 
    2009-07-20 11:18:31 | 
显示代码纯文本
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<string>
#define maxlongint 2147000000
#include<stdlib.h>
	int i,j,k;
	int temp;
	int ans;
	int a[10000001];
	int jl[10000001];
	int n,m;
	int aa,b;
	int tot;
	int l,r,min;
	
int main (void)
{
	freopen("exhibit.in","r",stdin);
	freopen("exhibit.out","w",stdout);
	scanf("%d%d\n",&n,&m);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
	}
	min=maxlongint;
	tot=0;
	l=0; r=0;
	for(;r<n;)
	{
		if(tot==m)
		{
			l++;
			jl[a[l]]--;
			if(jl[a[l]]==0)
			{
				tot--;
			}
		}
		else
		{
			r++;
			jl[a[r]]++;
			if(jl[a[r]]==1)
			{
				tot++;
			}
		}
		
		if (tot==m)
		{
			temp=r-l;
			if(temp<min)
			{
				min=temp;
				aa=l;
				b=r;
			}
		}
	}
	printf("%d %d\n",aa+1,b);
	return 0;
	
}