04. Корректировка заказа

☰ Теория

Динамический массив List<T>

Что хранит. Последовательность элементов одного типа, которая может расти и уменьшаться. Сохраняет порядок и повторы.

Для чего используют. Подходит для плейлиста, заказа и списка результатов, когда элементы добавляются или удаляются во время работы.

Основные операции

Запись на C#Назначение
a.CountЧисло элементов; Capacity — отдельно выделенный запас места.
a[i]Прочитать или заменить элемент: 0 ≤ i < Count.
a.Add(x)Добавить в конец.
a.Insert(i, x)Вставить на позицию i: 0 ≤ i ≤ Count.
a.RemoveAt(i)Удалить по индексу; следующие элементы сдвинутся.
a.Remove(x)Удалить первое совпадение по значению; false, если его нет.
a.IndexOf(x)Индекс первого совпадения или −1.
a.Sort()Упорядочить элементы по возрастанию.

Пример

Для примера нужны using System; и using System.Collections.Generic;. Код выполняется внутри Main.

List<int> a = new List<int>();
a.Add(10);
a.Add(30);
a.Insert(1, 20);               // Теперь: 10, 20, 30.
a.Remove(10);                  // Теперь: 20, 30.
Console.WriteLine(a[0]);
Console.WriteLine(a.Count);

Вывод:

20
2

Важно. При вставке допустим индекс Count, при чтении, замене и удалении — нет. Во время foreach не добавляйте и не удаляйте элементы того же списка.

Для этой задачи

  • Отмена по значению. Один Remove(x) удаляет только первое совпадение, сохраняя остальные повторы.

Заказ хранится как последовательность идентификаторов товаров. Один товар может встречаться несколько раз. Каждая отмена удаляет только первое оставшееся вхождение указанного товара. Если товара уже нет, отмена ничего не меняет. Обработайте отмены в порядке поступления.

Входные данные

Первая строка содержит n и m. Вторая — n идентификаторов исходного заказа. Третья — m идентификаторов для отмены. Строка последовательности пустая, если её длина равна нулю.

Выходные данные

В первой строке выведите размер итогового заказа. Во второй — оставшиеся идентификаторы в исходном взаимном порядке через пробел или EMPTY, если заказ пуст.

Не выводите приглашения к вводу и пояснения. Служебные слова в ответах пишите в указанном регистре.

Ограничения

0 ≤ n, m ≤ 5000; идентификаторы от 1 до 10⁹.

Примеры
Входные данныеВыходные данные
1
5 3
20 10 20 30 20
20 99 20
3
10 30 20
2
2 3
7 7
7 7 7
0
EMPTY

Напишите программу
Auto
       

time 3000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам