Даны два целочисленных массива Х [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
107 +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 Апр в 18:26
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 94 757 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир