урок 15 задача 16

Дан массив длиной N (не более 100 элементов), состоящий из случайно выбранных чисел из диапазона от 0 до k, где 0≤k

урок 15 задача 16

program project1;
type mas=array[1..100] of integer;
var a:mas;
    n,k,i,j,kol,d,df:integer;
    h: boolean;

function poisk(aa: mas; kk,jj,ii: integer): boolean;
var u,g:integer;
    f: boolean;
begin
    for u:=0 to kk do    //числа, которые должны присутствововать в фрагменте
    begin
        for g:=jj to jj+ii-1 do     //перебор элементов фрагмента, поиск чисел
        begin
            f:=false;
            if u=aa[g] then
            begin
                f:=true;
                break;
            end;
        end;
        if not f then
            break;
    end;
    result:=f;
end;

begin
  writeln('vvedite N');
  readln(n);
  n:=30;
  writeln('vvedite k');
  readln(k);
  k:=3;
  randomize();
  for i:=1 to n do
  begin
      a[i]:=random(k+1);
      write(a[i],' ');
  end;
  writeln();
  for i:=k+1 to n do   //длина фрагмента на котором происходит поиск
  begin
      for j:=1 to n-i+1 do     //элемент массива, от которого начинается фрагмент
      begin
          h:= poisk(a,k,j,i);
          if h then
              break;
      end;
      if h then
          break;
  end;
  if not h then
      writeln('massiv ne soderzhit vse chisla ot 0 do ',k)
  else
      writeln('min dlinna = ', i);
  readln();
end.
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)