Задача

Санта Клаус
Санта Клаус готовится к Рождеству. В этот праздник он хочет вручить подарки [latex]n[/latex] детям. Его помощники Эльфы уже собрали два мешка, с которыми он отправится в новогоднее путешествие по всем странам мира. И чтобы Санта не запутался, Эльфы составили список детей, чьи подарки уже лежат в каждом из мешков. Санта хочет помочь Эльфам, и поэтому решил положить в третий мешок подарки для тех детей, которым они еще не подготовлены.
Помогите Санте, составьте список детей, чьи подарки надо положить в третий мешок.
Входные данные
Первая строка входного файла содержит три целых числа: [latex]n[/latex] — число детей, [latex]m[/latex] и [latex]k[/latex] — число подарков в первом и втором мешке соответственно [latex](1\leq n,\;m,\;k\leq 100;m+k\leq n)[/latex]. Вторая строка входного файла содержит [latex]m[/latex] целых чисел — номера детей, подарки для которых лежат в первом мешке. Третья строка входного файла содержит [latex]k[/latex] целых чисел — номера детей, подарки для которых лежат во втором мешке.
Гарантируется что Эльфы положили для каждого ребенка не более одного подарка. Номера всех детей являются целыми положительными числами не превосходящими [latex]n[/latex]. Все дети должны получить подарок на Рождество, иначе Санта расстроится.
Выходные данные
В первой строке выведите одно число [latex]a[/latex] — сколько подарков должно быть в третьем мешке. Во второй строке выведите в произвольном порядке [latex]a[/latex] чисел — номера детей, которым эти подарки должны быть доставлены.
Тесты
| Входные данные | Выходные данные | 
|---|---|
| 2 1 1 2 1 | 0 | 
| 3 1 2 1 2 3 | 0 | 
| 7 2 1 7 3 1 | 4 2 4 5 6 | 
| 100 14 4 2 93 30 56 17 19 75 22 23 5 49 11 8 33 91 40 81 54 | 82 1 3 4 6 7 9 10 12 13 14 15 16 18 20 21 24 25 26 27 28 29 31 32 34 35 36 37 38 39 41 42 43 44 45 46 47 48 50 51 52 53 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 79 80 82 83 84 85 86 87 88 89 90 92 94 95 96 97 98 99 100 | 
| 10 3 5 2 5 8 3 7 1 4 9 | 2 6 10 | 
| 61 40 5 61 20 5 3 4 9 8 49 31 20 33 35 34 61 1 32 53 51 7 21 44 46 47 2 60 50 19 25 | 36 5 6 10 11 12 13 14 15 16 17 18 22 23 24 26 27 28 29 30 36 37 38 39 40 41 42 43 45 48 52 54 55 56 57 58 59 | 
| 12 3 3 1 2 3 11 10 8 | 6 4 5 6 7 9 12 | 
Код программы
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <iostream> using namespace std; int main() {     int n, m, k, num;     cin >> n >> m >> k;     bool children[n];     for (int i = 0; i < n; i++) {         children[i] = false;     }     for (int i = 0; i < m + k; i++) {         cin >> num;         num--;         children[num] = true;     }     cout << (n - m - k) << "\n";     for (int i = 0; i < n; i++) {         if (!children[i]) {             cout << (i + 1) << " ";         }     }     return 0; } | 
Решение
Создадим массив типа bool , в котором каждому [latex]i[/latex]-ому ребёнку соответствует элемент с индексом [latex]i — 1[/latex], принимающий значение [latex]0[/latex], если для ребёнка ещё нет подарка, и [latex]1[/latex], если подарок уже имеется в одном из мешков. Далее, отмечаем детей, подарки для которых уже лежат в мешках. Наконец, выводим номера тех детей, подарки для которых не были найдены ни в одном из мешков.
Ссылки
Условия задачи на e-olymp
Код задачи на ideone
 
						
Для отправки комментария необходимо войти на сайт.