ML 1

Условие задачи:

Даны два действительных числа [latex]a[/latex] и [latex]b[/latex]. Получить их сумму,  разность и произведение.

Код №1

Тесты

a z b sum
5 + 6 11
7 8 -1
9 * 11 99

 

Решение №1

Для создания данной программы я описал 4 переменных: [latex]a[/latex], [latex]b[/latex], [latex]z[/latex],  sum.  Для переменных [latex]a[/latex],  [latex]b[/latex],  [latex]sum[/latex] я взял тип переменных «long double» — так как не указано какие числа должны быть. Символом z мы обозначим переменную в  типе «char» —  так как мне надо указать знак операции. Для вычисления суммы надо ввести знак операции «+»,  для разности «-» и для произведения  «*»  выглядит все примерно так мы вводим (первое число «[latex]a[/latex]») (знак «[latex]z[/latex]» ) (второе число «[latex]b[/latex]») и получаем (ответ «[latex]sum[/latex]»).

 

Код №2

 

Решение №2

Это не то, что просили сделать изначально,  но я думаю это тоже будет интересно.

Отличие от первого кода состоит в том, что я добавил дополнительные команды,  а именно:  деления «/»,  возведения в степень «^»  и остаток от деления «%».

Во время создания программы я столкнулся с ситуациями которые очень важны и их легко пропустить. Когда выполняется деление на число или вычисляться остаток от деления надо обязательно сделать поверку является ли второе число нулем или нет, если да то надо вывести сообщение о том, что нельзя делить на ноль в другом случае делим на второе число.

Ссылки

Условие задачи;
Код программы №1 на Ideone.com;
Код программы №2 на Ideone.com;

Related Images:

e-olymp 107. Компакт-диски

Чистые компакт-диски продают в трёх видах упаковок. Упаковка из 100 дисков стоит 100 грн., из 20 дисков — 30 грн., а один диск стоит 2грн. Какую минимальную сумму нужно истратить для покупки [latex]N[/latex] таких дисков?

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

Единственное число [latex]N[/latex] — количество дисков. Значение [latex]N[/latex] натуральное, не больше 1000.

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

Искомая минимальная сумма в гривнах.

Тесты

Вход Выход
123 136
 130  150
 140  160
 23  36
 132  154
 170  200
 148  176

Код

Решение

Пусть задано число N — количество дисков и цена N таких дисков. Используем if-блок, для того, чтобы вычислить минимальную сумму дисков. Присваиваем 100 дискам целочисленные значения N. Увеличиваем цену 100 дисков. Вводим а — упаковка из 20 дисков. Присваиваем числу а целочисленные значения N. С помощью if-блока увеличиваем цену 20-ти дисков. Вводим b — один диск. Увеличиваем цену одного диска.

Решение принято на сайте e-olymp.com.

Выполнить код программы можно здесь.

Related Images:

e-olymp 1872. Снеговики

Задача: 

Зима. 2012 год. На фоне грядущего Апокалипсиса и конца света незамеченной прошла новость об очередном прорыве в областях клонирования и снеговиков: клонирования снеговиков. Вы конечно знаете, но мы вам напомним, что снеговик состоит из нуля или более вертикально поставленных друг на друга шаров, а клонирование — это процесс создания идентичной копии (клона).

В местечке Местячково учитель Андрей Сергеевич Учитель купил через интернет-магазин «Интернет-магазин аппаратов клонирования» аппарат для клонирования снеговиков. Теперь дети могут играть и даже играют во дворе в следующую игру. Время от времени один из них выбирает понравившегося снеговика, клонирует его и:

  • либо добавляет ему сверху один шар;
  • либо удаляет из него верхний шар (если снеговик не пустой).

Учитель Андрей Сергеевич Учитель записал последовательность действий и теперь хочет узнать суммарную массу всех построенных снеговиков.

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

Первая строка содержит количество действий n (1n200000). В строке номер i+1 содержится описание действия:

  • t m — клонировать снеговика номер t (0t < i) и добавить сверху шар массой m (0 < m1000);
  • t 0 — клонировать снеговика номер t (0t < i) и удалить верхний шар. Гарантируется, что снеговик не пустой.

В результате действия i, описанного в строке i+1 создается снеговик номер i. Изначально имеется пустой снеговик с номером ноль.

Все числа во входном файле целые.

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

Выведите суммарную массу построенных снеговиков.

Решение: Считываем n — количество действий. Задаем двухмерный массив размером [n+1][2]. Указываем значение первого элемента равное 0 и нулевого элемента равного -1, чтобы он ни на что не ссылался в начале.  В цикле считываем номер снеговика, которого нужно клонировать и массу шара, которую нужно добавить. Если масса шара равна 0, то мы клонируем снеговика и убираем последний его шар, ссылаясь на снеговика в котором этого шара еще не было. Если же масса шара не равно 0, то мы клонируем снеговика и добавляем ему шар массой m. Во второй ячейке указываем предка с которого строится новый снеговик. Выводим общую массу снеговиков.

Задача на e-olymp.

 

Код:

 

Тесты:

Input Output
8
0 1
1 5
2 4
3 2
4 3
5 0
6 6
1 0
74
4
0 3
1 2
2 1
1 1
18

Related Images:

А136о

Даны натуральное число [latex]n,[/latex] действительные числа [latex]a_{1},\ldots,a_{n}[/latex].
Вычислить: [latex]\sqrt{10+a_{1}^{2}}+\ldots+\sqrt{10+a_{n}^{2}}[/latex]

n [latex]a_{1}[/latex] [latex]a_{2}[/latex] [latex]a_{3}[/latex] [latex]a_{4}[/latex] [latex]a_{5}[/latex] [latex]a_{6}[/latex] sum Комментарий
6 1 0.5 7 19 -9 8 51.6024 Пройден.
5 16 14.3 2 27 19 81.1426 Пройден.
2 61 -5 66.998 Пройден.
3 28.8 0.34 20.9 31.5 53.2915 Пройден.
1 -65.9242 66 Пройден.

  1. Вводим числа( n, [latex]a_{1},\ldots,a_{k}.[/latex])
  2. Подсчитываем указанную сумму([latex]\sqrt{10+a_{1}^{2}}[/latex]+…+[latex]\sqrt{10+a_{n}^{2}}.[/latex])
  3. Выводим сумму.

Ссылка на код .

Related Images:

Ю 3.30

Задача 

 Численно убедится в справедливости равенства для заданного значения аргумента [latex]x[/latex] на заданное значение погрешности [latex]\varepsilon[/latex]. Вывести число итераций.

[latex]sinx=[/latex][latex] x-\frac{x^3}{3!}+[/latex][latex]\frac{x^5}{5!}[/latex][latex]-\dots+[/latex][latex](-1)^{n-1}[/latex][latex]\frac{x^{2n-1}}{(2n-1)!}[/latex]

Тест

[latex]x[/latex] Delta Результат(wolframalpha)
0 0 0.001 0
3.14 [latex]\pi[/latex] 0.0001 0.00161324
1.57 [latex]\pi/2[/latex] 0.00001 1
1.05 [latex]\pi/3[/latex] 0.0001 0.86602
2.06 [latex]2\pi/3[/latex] 0.0001 0.869296
Ссылка на программу: http://ideone.com/ykdWnD

Решение

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

 

Related Images:

М3

Big Summa. Заданы две текстовые строки, состоящие исключительно из цифр и не более чем одной точки.
Предполагается, что строки задают представление чисел в q-ричной системе счисления. Построить строку, являющуюся их суммой.

q A B A+B Комментарий.
10 126740 546.967 127286.967 Тест пройден.
8 2360 7521 12101 Тест пройден.
2 1011001 1101 100110 Тест пройден.
3 1210.012 1112.1 10022.112 Тест пройден.
10 4356.98 67.975 4424.955 Тест пройден.

Код программы (string):

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

Функция dot_position. Эта функция находит места точек в обеих строках, а если таковых нет, то им присваивается значение длины строки. Возвращает функция наибольшую по значению позицию точки.

Функции length_before_dot и length_after_dot возвращают количество цифр до и после точки соответственно.

Затем начинается тело основной функции программы. Изначально пользователю предоставляется ввести систему счисления и 2 числа, которые программа считывает в виде строк. Для удобства вычислений программа дополняем строку, которая не содержит точку, ещё одним ранее названным символом. Затем мы выравниваем оба наших числа по точкам.

После этого  программа готова вычислить сумму двух чисел. Сложность реализации алгоритма сложения состояла лишь в том, что записать в строку элемент типа int — невозможно, а следовательно, его нужно было преобразовать в  строку. Для этого потребовалась функция to_string() из класса <string>. Но при этом элементы a[i] и b[i] воспринимались как коды символов, поэтому каждый из них нужно было уменьшить на ‘0’.

Ещё одна сложность — это десятки, которые мы держим «в уме», а в моём случае — во вспомогательной переменной p.

Код можно посмотреть здесь.

Код программы (cstring):

Из-за отсутствия функции insert() в классе <cstring> я была вынуждена написать её самостоятельно. В остальном работа заключалась лишь в «переводе» кода из одного класса в другой.

Код можно посмотреть здесь.

Related Images:

А136е

Задача:

Даны натуральные числа [latex]n[/latex], действительные числа [latex]a_{1}, a_{2}, \cdots, a_{n}[/latex]. Вычислить [latex]a_{1}+a_{2}+\cdots+a_{n}[/latex] и [latex]a_{1}a_{2}\cdots a_{n}[/latex].

Тест:

n [latex]a_{1}, a_{2}, \cdots, a_{n}[/latex] s p Комментарий
2 3 4 7 12 Пройден
4 1 3 5 7 16 105 Пройден
6 2 2 3 3 4 4 18 576 Пройден
1 9 9 9 Пройден
Решение:

В программе задаем число [latex]n[/latex]- количество элементов сумм и произведения и [latex]a[/latex]- элементы сумм и произведения.  [latex]n[/latex] и [latex]a[/latex] вводим с клавиатуры. В цикле находим сумму и произведение.

Посмотреть работу можно тут.

Related Images:

А410г

Задача.

Дана целочисленная матрица [latex]\left[a_{ij} \right] {i,j=1, \ldots,n}[/latex]. Получить [latex]b_{1}, \ldots,b_{n}[/latex], где  [latex]b_{i}[/latex] — это  [latex]\sum_{j=1}^{n}{\left|a_{ji} \right|}[/latex].

Тесты.

n [latex]\left[a_{ij} \right][/latex] [latex]b_{1}, \ldots,b_{n}[/latex] Комментарий
2 [latex]\begin{pmatrix}1& 4\\-5 & 7\end{pmatrix}[/latex] 6 11 Пройден
3 [latex]\begin{pmatrix}1 & 2 & -3\\-4 & 5 & 6\\7 & -8 & 9\end{pmatrix}[/latex] 12 15 18 Пройден

Решение.

C++

Java

Вводим элементы матрицы. Используя цикл вычисляем  [latex]b_{i}[/latex]. После завершения вычислений, выводим элементы массива [latex]b[/latex] на экран.

Для выполнения программы и проверки тестов можно воспользоваться следующей ссылкой(C++) или другой(Java).

Related Images:

А136м

Задача.

Даны натуральное число [latex]n[/latex], действительные числа   [latex]a_{1},…,a_{n}[/latex] .

Вычислить: [latex]\sin \left|a_{1}+…+a_{n} \right|[/latex]

Тест

[latex]n[/latex] последовательность результат (wolframalpha)
1 0 0
1 1000 0.82688
1  -100 0.505366
3 -100 1000 -100 0.89397
5 1 2 3 4 5 0.650287

Я показала , что период не [latex]\pi [/latex] , а [latex]2\pi [/latex] . Период  [latex]\pi [/latex]  был бы в случае [latex]\left|\sin a_{1}+…+a_{n} \right|[/latex] , а у нас  [latex]\sin \left|a_{1}+…+a_{n} \right|[/latex] . Вот графики :

6WSmLvYnzY4

zATL68loKls

 

Ссылка на программу: http://ideone.com/ICxfXU

Решение:

Переменной [latex]sum[/latex] присваиваем значение [latex]0[/latex]. Вводим элемент [latex]a[/latex], который мы будем суммировать в цикле до [latex]n[/latex]:

Далее вводим в input соответствующие значения [latex]a[/latex] и получаем ответ.

 

Related Images:

А136з

Задача Вычислить: [latex]-\frac{a_1}{1!}+\frac{a_2}{2!}-…+\frac{(-1)^na_n}{n!}[/latex]

Тест

n последовательность sum(wolframalpha)
2 0 0 0
2 5 8 -1
3 5 8 12 -3
4 1 2 3 24  1
 5  0 0 0 2 3  0, 058333
Ссылка на программу:http://ideone.com/F0UyqY

Решение:
В этой задаче главное правильно расставить знаки, так  как  это повлияет на результат.Поэтому мы заводим переменную [latex]sign[/latex], которая будет следить за знаком. Далее проверяем  чётность, если элемент делиться на 2 без остатка, то он получает знак [latex]+[/latex], в противном случае [latex]-[/latex]:

Описываем факториал:

Выполняем суммирование и делим на факториал:

Вводим в [latex]input[/latex] количество элементов ([latex]n[/latex])  и сами элементы.Получаем ответ.

Related Images:

А114а

Задача. Вычислить [latex]\sum_{i=1}^{100}{1/i^2}[/latex];

[latex]\sum_{i=1}^{100}{1/i^2}[/latex] Комментарий
1.63498 Тест пройден
Все довольно просто:

1) Программа задает функцию и её сумму;
2) Вычисляет сумму элементов функций  arr(i) в цикле(прибавляет к сумме asd каждое значение фунции arr(i) , где i от 1 до 100);
3) Выводит значение суммы.

Для проверки можете воспользоваться этой ссылкой

Related Images:

А119б

Задача.  Вычислить бесконечную сумму с заданной точностью [latex]\varepsilon(\varepsilon >0)[/latex]. Считать, что требуемая точность достигнута, если несколько первых слагаемых и очередное слагаемое оказалось по модулю меньше, чем [latex]\varepsilon[/latex], это и все последующие слагаемые можно уже не учитывать. Вычислить:

[latex]\sum_{i=1}^{\infty}{\frac{1}{i(i+1)}}[/latex].

Тесты:

[latex]\varepsilon[/latex] s Комментарий
0.035 0.800 Пройден
0.085 0.667 Пройден
0.025 0.833 Пройден
Решение:

С помощью цикла подсчитываем сумму.

С работой программы можно ознакомиться здесь.

Related Images:

A159

Задача:

Даны натуральное число n, действительные числа [latex]a_{1}, …, a_{n}[/latex] [latex]\left( n\geq 3\right)[/latex] .

Получить [latex]b_{1}, …, b_{n-2}[/latex], где [latex]b_{i} = a_{i + 1} + a_{i + 2}[/latex], [latex]i=1, 2 , … , n-2[/latex].

Таблица:

[latex]a_{1}, …, a_{n}[/latex] [latex]b_{1}, …, b_{n-2}[/latex] Комментарий
1 2 3 4 5 6 7 5 7 9 11 13 Пройден
1.235 2.457 2.543 4.457  4.543 6.457 6.543 5 7 9 11 13 Пройден
 9 -12 17 -10 19 -8 21 5 7 9 11 13 Пройден
-21 26 -21 28 -19 30 -17 22 -15 24 -13 26 5 7 9 11 13 5 7 9 11 13 Пройден
21 -26 21 -28 19 -30 17 -22 15 -24 13 -26 -5 -7 -9 -11 -13 -5 -7 -9 -11 -13 Пройден

Исходный код:

Работать будет и такая версия:

Код на Java

 

 Описание:

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

Алгоритм:

  1. Объявление необходимых переменных.
  2. Отдельно ввод первого и второго элемента первой последовательности.
  3. Создание цикла для ввода данных.
    1. Печать суммы второго и третьего элемента первой последовательности (первый элемент результирующей последовательности).
    2. Обеспечение сдвига суммируемых элементов (со второго и третьего на третий и четвертый и т. д.)
  4. Окончание работы программы после завершения цикла.

Ссылка на Ideone.

 

 

 

 

 

Related Images:

Ю3.32

Задача:

Вычислить [latex]x=2\left(\sin x-\frac{\sin 2x}{2}+\frac{\sin 3x}{3}-\cdots+\left(-1 \right)^{n-1} \frac{\sin nx}{n}\right)[/latex],

[latex]-\pi <x<\pi [/latex].

n x summa Комментарий
3 1 0.867725 Пройден
2 2 2.575397 Пройден
1 5 -1.917849 Пройден
Решение:

Запишем общий вид суммы: [latex]2\sum_{i=0}^{n}{\left(-1 \right)^{n-1}}\frac{\sin ix}{i}[/latex].

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

Работу программы можно посмотреть тут.

Related Images:

А410б

Задача: Дана целочисленная матрица [latex][a_{i,j},\ i=1,\ldots,n;\ j=1,\ldots,m][/latex]. Получить [latex]b_{1},\ldots,b_{n}[/latex], где

[latex]{b}_{i}=\sum_{j=1}^{n}(-1)^{i+j}a_{ij}[/latex]

Код на С++: 

 

Код на Java:

 

 

Тесты: 

[latex]n*m[/latex] [latex]\begin{bmatrix}{a}_{ij}\end{bmatrix}[/latex] [latex]b_{i}[/latex]
3*3 1 2 3

4 5 6

7 8 9

2 -5 8
1*6 2 -4 6 -8 10 -12 42
3*5 1 3 5 7 9

11 13 15 17 19

21 23 25 27 29

5 -15 25

Алгоритм:  Чтобы решить эту задачу, необходимо было создать два массива: входной массив (матрицу) и массив результатов (который надо инициализировать нулями). Далее, необходимо завести цикл, в котором будет проводится, собственно говоря, подсчёт. В зависимости от суммы номеров строки и столбца исходной матрицы, -1 в степени этой суммы будет принимать положительное  или отрицательное  значение. Соответственно, к результату будет прибавляться или отниматься значение, стоящее на i-том j-том месте.

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

Related Images:

А136д

Задача: Даны натуральное число [latex]n[/latex], действительные числа [latex] a_{1},\ldots,a_{n} [/latex].

Вычислить:

[latex] a^{2}{1}+\ldots+a^{2}{n} [/latex];

Тесты:

n a result
0 1, 2 error: out of range
2 5, 8  89
3 6, 13, 4  221
4 1, 2  error: incomplete input
7 2, 4, 8, 16, 32, 64, 128 21844

Код программы:

Код прогрммы на языке Java:

Ссылка: https://ideone.com/x0q7r4

План программы:

  1. Назначение рабочих переменных
  2. Ввод количества элементов суммы
  3. Проверка ввода n
  4. Ввод чисел » а «
  5. Цикл вычисления
  6. Вывод результата

Программе задаётся число n элементов суммы и сами элементы. При получении этих данных программа вычисляет сумму. Если количество элементов меньше или равно 0 , программа сообщает о невозможности выполнения операции по суммированию. Входные данные используются по мере ввода, они нигде не сохраняются, т.к. используются единожды для накопления общего результата.

Ссылка на ideone.com: http://ideone.com/dxXr0Q

Related Images:

А136ж

Задача: Даны натуральное число [latex]n[/latex], действительные числа  [latex]{ a }_{ 1 },\dots ,{ a }_{ n }[/latex]

Вычислить:  [latex]{ a }_{ 1 }-{ a }_{ 2 }+{ a }_{ 3 }-\dots +{ (-1) }^{ n+1 }{ a }_{n }[/latex]

(В этой задаче не требуется хранение исходных последовательностей значений)

n  [latex]{ a }_{ 1 },\dots ,{ a }_{ n }[/latex] Sum
5 7 4 3 3 3 6
10  1 1 2 2 3 3 4 4 5 6 -1
15 66 456 3334 23 0.86 -587 4332 82223 0.0008 0 -0.75 44 52 7777 43 -82108.9
5  0.0005 0.0006 0.06 0.00008 0.00003 0.05985

Код программы на С++

Код программы на Java

Смысл решения прост — мы считываем количество чисел, которые нам в последствии предоставят. делается это для того, чтобы наш цикл мог точно закончится. Затем считывая каждое число присваиваем ему соответствующий знак и суммируем. Как и просили в условии — исходные значения не сохраняются.

Ссылка C++

Ссылка Java

 

Related Images:

А100

Задача: Пусть [latex] x_{1}=x_{2}=x_{3}=1 [/latex];

[latex] x_{i}=x_{i-1}+x_{i-3} [/latex];

[latex] i=4, 5, [/latex]…

Вычислить [latex] \sum_{i=1}^{100}{\frac{x_{i}}{2^{i}}} [/latex]

Тесты:

n result
-1 error
0 error
1 0.5
2 0.75
3 0.875
4 1
5 1,09375
12 1.305908
100 1.333333

Код программы:

Код программы на языке Java:

Ссылка: https://ideone.com/NVdBlc

План программы:

  1.  Назначение рабочих переменных
  2. Проверка ввода n
  3. Основной цикл сравнения для получения нужного значения переменных
  4. Цикл вычисления
  5. Вывод результата

Программа выполняет суммирование в цикле согласно заданной формуле. Задаётся только число итераций, а слоагемое вычисляется согласно формуле.

Ссылка на ideone.com: http://ideone.com/Yy8e5l

Related Images:

А137а

 

Задача:  Даны натуральное число [latex]n[/latex] и действительные числа [latex]a_{1},\ldots,a_{n}[/latex].

Вычислить:

[latex]a_{1},a_{1}+a_{2},\ldots,a_{1}+a_{2}+\ldots+a_{n}[/latex].

Тесты: 

Кол-во элементов [latex]n[/latex] [latex]a_{1},a_{2},\ldots,a_{n}[/latex] result в каждой итерации
7 1, 2, 3, 4, 5, 6, 7 1, 3, 6, 10, 15, 21, 28
10 10, 12, 14, 16, 18, 20, 21, 23, 25, 27 10, 22, 36, 52, 70, 90, 111, 134, 159, 186
5 0.1, 0.2, 0.3, 0.4, 0.5 0.1, 0.3, 0.6, 1.0, 1.5
5 -1, -2, 3, 4, -5 -1, -3, 0, 4, -1

Код на С++: 

 

Код на Java:

 

Решение:  Для подсчёта суммы в данной задаче надо было организовать цикл for (поскольку указано количество элементов в ряду), и с каждой итерацией прибавлять к результату result (которому предварительно придано значение 0) введённое с клавиатуры значение, потом выводить результат на экран.

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

Related Images:

А116а

Задача: Даны натуральное число [latex]n[/latex] и действительное [latex]x[/latex]. Найти:

[latex]\sum_{i=1}^{n}\frac{x^{i}}{i!}[/latex]

Тесты:

Число [latex]x[/latex], возводимое в степень Кол-во шагов [latex]n[/latex] Результат result
5 3 38.(3)
4 12 53.5832
20 5 34886.7
0 0 0
10 10 12841.3

Решение: Для решения данной задачи надо было провести численный анализ. Каждый раз высчитывать и прибавлять результат нельзя, т.к программа будет работать очень долго. По-этому стоит рассмотреть два значения: текущее и последующее, [latex]x_{n}[/latex] и [latex]x_{n+1}[/latex]. Поделим одно на другое:

[latex]\frac{x_{n+1}}{x_{n}}=\frac{x^{i+1}*i!}{(i+1)*i!*x^{i}}=\frac{x}{i+1}[/latex]

Поскольку сумму ряда считаем с 1, то делить будем на [latex]i[/latex], а не на [latex](i+1)[/latex].

Код на С++: 

 

Код на Java:

 

 

Для проверки правильности работы кода, воспользуйтесь ссылкой.

Related Images: