У Артёма очень оригинальные друзья, каждый из которых любит есть конфеты немного по-своему. Например, Аркадий любит вынуть из ко
У Артёма очень оригинальные друзья, каждый из которых любит есть конфеты немного по-своему.
Например, Аркадий любит вынуть из коробки все конфеты, вид которых — четное число, а затем съесть из них каждую вторую, а оставшиеся — положить на свободные места слева направо.
Внутри класса в массиве эта операция выглядит так:
(7, 1, 2, 5, 8, 10, 4, 3, 17) → (7, 1, 0, 5, 0, 0, 0, 3, 17) → (7, 1, 2, 5, 10, 0, 0, 3, 17).
Алиса, в отличие от Аркадия, любит съесть сначала первую половину конфет (округленную в меньшую сторону), а затем, раскаиваясь о содеянном, расставить оставшиеся конфеты в том же порядке так, чтобы между ними было хотя бы одно свободное место. При этом первая оставшаяся конфета должна оказаться на первом месте в коробке.
Внутри класса в массиве эта операция выглядит так:
(7, 1, 2, 5, 8, 10, 4, 3, 17) → (0, 0, 0, 0, 8, 10, 4, 3, 17) → (8, 0, 10, 0, 4, 0, 3, 0, 17).
Ещё один пример:
(7, 1, 2, 5, 8, 10, 4, 3) → (0, 0, 0, 0, 8, 10, 4, 3) → (8, 0, 10, 0, 4, 0, 3, 0).
Помогите Артёму по заданному набору конфет в коробке определить, какой состав конфет в коробках будет после того, как его друзья съедят все конфеты, которые их интересуют. Предполагается, что и Аркадию и Алисе Артём подарил одинаковые коробки конфет.
Для решения этой задачи вы должны проделать шаги, указанные ниже.
Добавить в класс CandyBox публичный метод int size(), который будет возвращать размер коробки конфет.
Добавить в класс CandyBox публичный метод int& at(int index), который будет возвращать конфету, которая находится на i-ой позиции. Обратите внимание, что за счёт того, что метод возвращает ссылку, вы можете менять содержимое коробки. Например, вот так:
CandyBox b;
b.read();
b.at(3) = 7;
Добавить в класс CandyBox конструктор копирования.
Добавить вне класса функцию CandyBox Arcady_process(CandyBox b), которая эмулирует поведение Аркадия, если ему подарить коробку конфет b, и возвращает новый объект — коробку, из которой поел конфет Аркадий.
Добавить вне класса функцию CandyBox Alice_process(CandyBox b), которая эмулирует поведение Алисы, если ей подарить коробку конфет b, и возвращает новый объект — коробку, из которой поела конфет Алиса.
Формат входных данных
В первой строке вводится целое положительное число M — количество конфет.
В следующей строке вводятся M неотрицательных чисел, не превышающих 109 — виды конфет.
Формат выходных данных
Требуется вывести две строки с числами — состояние коробок после Аркадия и Алисы.
входные данные
9
7 1 2 5 8 10 4 3 17
выходные данные
7 1 2 5 10 0 0 3 17
8 0 10 0 4 0 3 0 17
входные данные
7
8 4 6 4 8 8 1
выходные данные
8 6 8 0 0 0 1
4 0 8 0 8 0 1