isheh09ow2mth
04.06.2023 08:49

4. Не подпоследовательность Ограничение времени 2 секунды
Ограничение памяти 244Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Назовем последовательность X = (x1, x2, …, xt) подпоследовательностью другой последовательностиY = (y_1, y_2, …, y_s), если какие-то элементы (возможно ни одного) можно удалить из последовательности Y, чтобы получить последовательность X.

Например, последовательность (1, 2, 3, 2) является подпоследовательностью последовательности (1, 1, 2, 2, 1, 3, 2, 1), а последовательность (1, 2, 3, 1, 2) – нет.

Заданы две последовательности A = (a1, a2, …, am) и B = (b1, b2, …, bn), состоящие из целых чисел в диапазоне от 1 до k. Необходимо найти наименьшую по длине последовательность C = (c1, c2, …, cp), которая не являлась бы подпоследовательностью ни A, ни B. Элементы последовательности C также должны являться целыми числами в диапазоне от 1 до k.

Формат ввода
В первой строке стандартного ввода содержится число k – максимальное значение элемента последовательности (1 ≤ k ≤ 5 000).

Во второй строке содержится число m – длина первой последовательности А (1 ≤ m ≤ 5 000). В третьей строке содержатся m целых чисел в интервале от 1 до k – последовательность A.

В четвертой строке содержится число n – длина второй последовательности B (1 ≤ n ≤ 5 000). В пятой строке содержатся n целых чисел в диапазоне от 1 до k — последовательность B.

Формат вывода
В первой строке стандартного вывода необходимо вывести p – длину искомой последовательности. Во второй строке — саму последовательность C. Если последовательностей такой длины несколько, можно вывести любую из них.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
djonli1
30.03.2023 12:15
Type
  mass = array[1..10, 1..10] of real;

var
  a, b, c: mass;
  n, m, i, j, n1, m1: integer;

procedure MatrA(var a: mass);
var
  i, j: integer;
begin
  for i := 1 to n do
    for j := 1 to m do
    begin
      writeln('a[', i, ',', j, ']: ');
      readln(a[i, j])
    end
end;

procedure MatrB(var b: mass);
var
  i, j: integer;
begin
  for i := 1 to n1 do
    for j := 1 to m1 do
    begin
      writeln('b[', i, ',', j, ']: ');
      readln(b[i, j])
    end
end;

procedure Sum(a, b: mass; var c: mass);
var
  i, j: integer;
begin
  for i := 1 to n do
    for j := 1 to m do
      c[i, j] := a[i, j] + b[i, j];
end;

begin
  writeln('Введите n,m матрицы A');
  readln(n, m);
  MatrA(a);
  writeln('Введите n,m матрицы B');
  readln(n1, m1);
  MatrB(b);
  if (n1 <> n) and (m1 <> m) then
    writeln('Матрицы сложить нельзя')
  else begin
    Sum(a, b, c);
    writeln('A+B');
    for i := 1 to n do
    begin
      for j := 1 to m do
        write(c[i, j]:1:3, ' ');
      writeln
    end
  end;
  readln;
end.
0,0(0 оценок)
Ответ:
ДианкаСафонова
22.02.2023 03:45
//Видимо, это одна задача, так как "изменения" во второй не указаны
//Pascal ABC.NET v3.1 сборка 1172

Const
 n=20;

Var
 ar:array[1..n] of integer;
 i:integer;
begin
 randomize;
 writeln('First array:');
  for i:=1 to n do
   begin
    ar[i]:=random(10)-3;
    write(ar[i]:4);
    if ar[i]>0 then ar[i]:=ar[i]*2 else ar[i]:=0;
   end;
 writeln;
 writeln('Final array:');
  for i:=1 to n do
   write(ar[i]:4);
end.

Пример работы программы:
First array:   2  -3   5   6  -3  -3   1  -2  -3   1   3  -3   4  -3   1  -1   6   6   2   3
Final array:   4   0  10  12   0   0   2   0   0   2   6   0   8   0   2   0  12  12   4   6
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота