Задача 17 Урок 15

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

Например:

    Для N = 6, k=2:
    20221длина=41

Для N = 10, k=2:
2022110012длина=3
Для N = 15, k=3:
20223300230321длина=40
Для N = 7, k=2:
010002длина=50
Для быстрой проверки кода через запуск используйте следующий тип массива:
type
    ArrOfInt = array[1..100] of integer;
type
  ArrOfInt=array[1..100] of integer;
var
  mas:ArrOfInt;
  i,j,k,len,d,opt:integer;

begin
  randomize();
  d:=0;
  len:=0;
  opt:=100;
  writeln('Vvedite diapazon chisel: ');
  readln(k);
  for i:=low(mas) to high(mas) do
    mas[i]:=random(k+1);
  for j:=low(mas) to high(mas) do
    begin
      if(mas[j]=d) then
        d:=d+1;
      if(d=k) then
        begin
          d:=0;
          if(opt>len) then
            opt:=len;
            len:=0;
        end;
      len:=len+1;
    end;
  writeln ('Velichina ravna ',opt);
end.  

Консоль:

Vvedite diapazon chisel: 
6

Velichina ravna 63