比赛 |
NOIP_1 |
评测结果 |
C |
题目名称 |
画展 |
最终得分 |
0 |
用户昵称 |
辨机ZN |
运行时间 |
0.000 s |
代码语言 |
Pascal |
内存使用 |
0.00 MiB |
提交时间 |
2008-10-12 11:41:02 |
显示代码纯文本
program ex(f1,f2);
type
zn=array [1..2000] of longint;
ka=array [1..1000000] of integer;
var
a:ka; f1,f2:text; i,j,k,m,n,p,l:longint;
ans,tot,left,right,ll,rr,beginer:longint;
c,d:zn; flag:boolean;
begin
assign(f1,'exhibit.in'); reset(f1);
assign(f2,'exhibit.out'); rewrite(f2);
readln(f1,n,m);
for i:=1 to m do c[i]:=0;
for i:=1 to n do read(f1,a[i]);
flag:=true;
left:=1;
ans:=maxlongint;
beginer:=1;
while flag do
begin
for i:=beginer to n do
begin
if c[a[i]]=0 then
begin
tot:=tot+1;
c[a[i]]:=c[a[i]]+1;
if tot=m then
begin
right:=i;
if i=n then flag:=false;
break;
end;
end
else inc(c[a[i]]);
if i=n then flag:=false;
end;
for i:=left to right do
begin
dec(c[a[i]]);
if c[a[i]]<=0 then begin dec(tot); break; end
else l:=left+1;
end;
if right-l<ans then
begin
ans:=right-l;
ll:=l;
rr:=right;
end;
left:=l+1;
beginer:=right+1;
end;
if ll=0 then inc(ll);
writeln(f2,ll,' ',rr);
close(f1);
close(f2);
end.