Задача 17 Урок 15
Primary tabs
Дан массив длиной 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
- Log in to post comments
- 415 reads