Уартёма оригинальные друзья, каждый из которых любит есть конфеты немного по-своему.
например, аркадий любит вынуть из коробки все конфеты, вид которых — четное число, а затем съесть из них каждую вторую, а оставшиеся — положить на свободные места слева направо.
внутри класса в массиве эта операция выглядит так:
(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 который будет возвращать размер коробки конфет.
добавить в класс 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
1080
Объяснение:
Разберём 2 варианта.
1) когда буквы Р и Г постоянны, буква Н не используется, а остальные 3 буквы используются произвольно.
Получаем, что у буквы Р есть 5 вариантов постановки, у буквы Г - 4 варианта, и есть 3 места по 3 буквы.
Перемножаем: 5*4*3*3*3=540 вариантов.
2) когда буквы Р и Г постоянны, буква Н используется, а остальные 3 буквы используются произвольно.
Получаем, что у буквы Р есть 5 вариантов постановки, у буквы Г - 4 варианта, у буквы Н - 3 варианта и есть 2 места по 3 буквы.
Перемножаем: 5*4*3*3*3=540 вариантов.
Чтобы получить ответ, складываем оба варианта, получаем 540+540=1080 кодов
Объяснение:
program zadacha;
var d, o: text;
i, j, k, m, s: integer;
begin
assign(d, 'c:\data.txt');
reset(d);
assign(o, 'c:\output.txt');
rewrite(o);
i := 1;
j := 1;
readln(d, m);
s := m;
while not(eof(d)) do
begin
readln(d, k);
if k = m
then i := i + 1
else
begin
if i > j then
begin
s := m;
j := i
end;
m := k
end;
end;
writeln(o, 'Число: ', s, ', длина цепочки: ', i);
close(d);
close(o)
end.