Даны два целочисленных массива Х [1:n] и Y[1:k]. Можно ли в первом из них выбрать такие k идущих подряд элементов X[i+1], X[i+2], …, X[i+k], чтобы X[i+1]=Y[1], X[i+2]=Y[2], …, X[i+k]=Y[k]? Написать программу, которая решает эту задачу и печатает ответ ДА или НЕТ.(Паскаль)

31 Янв 2020 в 19:40
131 +1
0
Ответы
1

program FindSubarray;
var
X, Y: array[1..100] of integer;
n, k, i, j: integer;
found: boolean;

begin
found := false;

// Вводим массив X
write('Введите размер массива X: ');
readln(n);
writeln('Введите элементы массива X:');
for i := 1 to n do
read(X[i]);

// Вводим массив Y
write('Введите размер массива Y: ');
readln(k);
writeln('Введите элементы массива Y:');
for i := 1 to k do
read(Y[i]);

// Проверяем, можно ли найти подмассив Y в массиве X
for i := 1 to n - k + 1 do
begin
if X[i] = Y[1] then
begin
found := true;
for j := 2 to k do
begin
if X[i+j-1] <> Y[j] then
begin
found := false;
break;
end;
end;
end;
if found then
break;
end;

// Выводим ответ
if found then
writeln('ДА')
else
writeln('НЕТ');
end.

18 Апр 2024 в 18:26
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир