Cod sursa(job #147140)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 2 martie 2008 17:06:50
Problema Secv Scor 70
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.51 kb
program secv;
var f,g:text;
    a,v:array[1..5000]of longint;
    n,k,i,ok,j,min,c,l:longint;

function poz(li,ls:longint):longint;
var i,j,modi,modj,m,man:longint;
begin
i:=li;
j:=ls;
modi:=0;
modj:=-1;
while (i<=j)do
  begin
    if (a[i]>a[j])then
      begin
        man:=a[i];
        a[i]:=a[j];
        a[j]:=man;
        m:=modi;
        modi:=-modj;
        modj:=-m;
      end;
    i:=i+modi;
    j:=j+modj;
  end;
poz:=i;
end;
procedure quick(li,ls:longint);
begin
if (li<ls)then
  begin
    k:=poz(li,ls);
    quick(li,k-1);
    quick(k+1,ls);
  end;
end;

begin
assign(f,'secv.in');
assign(G,'secv.out');
reset(f);
rewrite(g);
read(f,n);
for i:=1 to n do
  begin
    read(f,v[i]);
    ok:=0;
    for j:=1 to l do
      if (a[j]=v[i])then
        begin
          ok:=1;
          break;
        end;
    if (ok=0)then
      begin
        inc(l);
        a[l]:=v[i];
      end;
  end;
quick(1,l);
i:=1;
min:=maxlongint;
while (i<=n)do
  begin
    if (v[i]=a[1])then
      begin
        c:=1;
        j:=i;
        k:=2;
        while (j<n)do
          begin
            inc(j);
            inc(c);
            if (v[j]=a[k])then
              begin
                inc(k);
                if (k>l)then
                  begin
                    if (c<min)then
                      min:=c;
                    break;
                  end;
              end;
          end;
      end;
    inc(i);
  end;
write(g,min);
close(f);
close(g);
end.