Cod sursa(job #2196)

Utilizator alex_dincaDinca Alexandru-Nicolae - UPB alex_dinca Data 16 decembrie 2006 11:42:49
Problema Secv Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.84 kb
var n,m,r,i,j,k,x:longint;f:text;
    v,t,c:array[1..5000] of longint;
begin
assign(f,'secv.in');reset(f);
read(f,n);
r:=1000000000;
for i:=1 to n do begin
    read(f,v[i]);
    t[i]:=v[i];
    end;
for i:=1 to n do
    for j:=i+1 to n do
        if t[i]>t[j] then begin
           x:=t[i];
           t[i]:=t[j];
           t[j]:=x;
           end;
c[1]:=t[1];
m:=1;
for i:=2 to n do
  if t[i]<>t[i-1] then
     begin
     m:=m+1;
     c[m]:=t[i];
     end;
for i:=n downto 1 do
    begin
    if v[i]=c[m] then begin
       k:=i;
       for j:=m-1 downto 1 do begin
           while (k>0)and(v[k]<>c[j]) do dec(k);
           if k<=0 then break;
           end;
       if (k>0)and(r>i-k+1) then r:=i-k+1;
    end;
end;
assign(f,'secv.out');rewrite(f);
if r=1000000000 then writeln(f,-1)
else writeln(f,r);
close(f);
end.