Урок 15. Задача 18.
Primary tabs
Дан массив длиной N (не более 100 элементов), состоящий из случайно выбранных чисел из диапазона от 0 до k, где 0≤k
Найдите в этом массиве длину самого короткого фрагмента, который содержит все числа от от 0 до k.
type ArrOfInt = array [1..100] of integer; var k, N :integer; Arr :ArrOfInt; function random_array() :ArrOfInt; // создаем массив var i :integer; Arr :ArrOfInt; begin randomize; for i := 1 to 100 do Arr[i] := random(9); random_array := Arr; end; function segment_in(k :integer; Arr :ArrOfInt) :boolean; // ищем отрезок var i, j :integer; fl :boolean; begin for i := 0 to k do // отрезок begin fl := false; for j:= low(Arr) to high(Arr) do if i = Arr[j] then begin fl := true; break; end; if not fl then break; end; segment_in := fl; end; function search_seg(k, m, p :integer; Arr :ArrOfInt) :boolean; // ищем самый короткий отрезок var i, j :integer; fl :boolean; begin for i := 0 to k do begin fl := false; for j:= m to p do if i = Arr[j] then begin fl := true; break; end; if not fl then break; end; search_seg := fl; end; function search_short(k :integer; Arr :ArrOfInt) :integer; // нарезаем отрезки var i, m, p :integer; begin for i := k + 1 to high(Arr) do begin for m := 1 to high(Arr) - i do begin p := m + i - 1; if search_seg(k, m, p, Arr) then break; end; if search_seg(k, m, p, Arr) then break; end; search_short := i; end; begin Arr := random_array(); k := 4; if segment_in(k, Arr) then N := search_short(k, Arr); write('Самый короткий отрезок = ', N); readln(); end.
- Log in to post comments
- 1612 reads
vedro-compota
Thu, 07/28/2022 - 20:02
Permalink
сначала решим 17-ю
сначала решим 17-ю
_____________
матфак вгу и остальная классика =)
vedro-compota
Sun, 09/11/2022 - 14:57
Permalink
добавить альтернативное
добавить альтернативное решение на основе функции num_in()
_____________
матфак вгу и остальная классика =)
vedro-compota
Wed, 09/14/2022 - 19:22
Permalink
1)
1)
-- почему именно 4? за что отвечает эта переменная.
Прокомментировать крактко ключевые моменты
2) за что отвечает segment_in()
_____________
матфак вгу и остальная классика =)
Dennis80
Wed, 09/21/2022 - 15:23
Permalink
type ArrOfInt = array [1..100
vedro-compota
Wed, 09/21/2022 - 19:23
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)