ML11

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

Определить время падения камня на поверхность земли с высоты h.

Алгоритм решения

Для начала оговорим трактовку условия задачи.

  1. Поскольку в условии ничего не говорится про начальную скорость камня, будем считать ее равной нулю.
  2. Аналогично в условии ничего не говорится про точность результата.  От этого зависит как округление до определенного количества знаков после запятой в выводе, так и то, с какой точностью следует указать ускорение свободного падения, поскольку каноны физики требуют, чтобы ответ на физическую задачу указывался с точностью наимение точно указанного в условии данного. В данном решении я взял значение [latex]g[/latex] свойственное Одессе с точностью 4 значка после запятой. Соответственно, ответ будет выводиться с такой же точностью.
  3. Предполагается что высота и время должны указываться в СИ

Тогда наша рабочая формула выглядит следующим образом: [latex]\sqrt{\frac{2 \cdot h}{g}}[/latex], где [latex] g=9.8075 \frac{m}{s^2}[/latex]. Вводить в программе [latex] g [/latex], как отдельную переменную или константу нет смысла, т.к. она используется только раз. Поэтому в коде вместо [latex] g [/latex] стоит просто ее значение.

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

 

 

Тесты

Для тестов я выбирал такие числа, чтобы было удобно считать для [latex]g=10\frac{m}{s^2}[/latex]. Тогда первый результат, полученный при выполнении программы, должен при округлении быть равен результату подсчета вручную при [latex]g=10\frac{m}{s^2}[/latex]

Высота (м) время (сек)
0 0
5 1.0098
20 2.0195
80 4.0391

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

Related Images:

ML23

Условие

Найти длины биссектрис [latex]a_1[/latex], [latex]b_1[/latex], [latex]c_1[/latex] треугольника, если известны длины противоположных сторон [latex]a[/latex], [latex]b[/latex], [latex]c[/latex].

Тестирование

Входные данные Выходные данные
1 6, 7, 9 7.35803, 6.49923, 4.67652
2 3.5, 4.5, 5.5 4.66027, 3.79967, 2.88195
3 100000, 100000, 100000 86602.5, 86602.5, 86602.5
4 1, 1.118034, 1.118034 1, 0.898056, 0.898056

Код

Решение

Для вычисления длины биссектрисы через три стороны произвольного треугольника воспользуемся формулой [latex]l_c = \frac{\sqrt{ab(a+b+c)(a+b-c)}}{a+b}[/latex], где:

  • [latex]l_c[/latex] — длина биссектрисы, проведенной к стороне [latex]c[/latex];
  • [latex]a[/latex], [latex]b[/latex], [latex]c[/latex] — стороны треугольника.

Формула достаточно громоздкая, а так как использовать мы ее будем трижды — для вычисления длины каждой из биссектрис, — имеет смысл написать функцию, которая бы получала длины трех сторон треугольника и возвращала длину биссектрисы, проведенной к первой из указанных сторон:

Можно заметить, что сумма [latex]a+b[/latex] встречается в формуле три раза. Для лучшей читаемости и компактности кода заменим a + b  на s :

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

Ссылки

Код программы на Ideone.com;

Формулы длины биссектрис в треугольнике;

Список задач на линейные вычисления.

Related Images:

ML13

Условие:

Дана сторона равностороннего треугольника. Найти площадь этого треугольника.

Тесты:

Входные данные Выходные данные
5 2.1650635094
1.7237891231 0.74642258566
9223372036854773806 3.9938372461e+18

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

Для запроса на выполнение нажать здесь.

Решение:

Пусть [latex]a[/latex] — длина стороны равносторонннего треугольника, а [latex]s[/latex] — площадь. Тогда [latex]s = \frac{a^2\sqrt{3}}{4}[/latex].

Формула для нахождения площади равностороннего треугольника.

Related Images:

ML16

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

На какую высоту [latex] h [/latex](в метрах) поднимется тело брошенное вертикально вверх со скоростью [latex] v [/latex] м/сек с поверхности планеты масса которой  [latex] m [/latex] кг а радиус [latex] R [/latex] м? Вращением планеты можно пренебречь.

Код

Тесты

v m R h
3 7 9 3.67092e+11
10 20 25 1.19867e+13
6 15 9 6.7425e+12
7 11 23 1.93122e+12

Решение

  1. Прямолинейное равноускоренное движение описывается двумя формулами: [latex]v=v_{0}+g \cdot t[/latex] (в этой формуле [latex] v_{0} [/latex] — начальная  скорость , а [latex] v [/latex] — текущая скорость) и [latex]h=v\cdot t-\frac{g \cdot t^{2}}{2}[/latex]. Однако, тело бросали вверх, следовательно,  произведение ускорения на время надо вычитать из начальной скорости:[latex]v=v_{0}-g \cdot t[/latex].
  2. В условии спрашивается на какую высоту [latex] h [/latex] (в метрах) поднимется тело брошенное вертикально вверх. Т.к тело начало равноускоренное движение из состояния покоя имеем: [latex] v_{0}=0 [/latex], отсюда получаем: [latex] v=0-g \cdot t[/latex] . Теперь можем выразить [latex] t [/latex]: [latex]t=-\frac{v}{g}[/latex].
  3. Подставляем   [latex] t [/latex] во вторую формулу. Получаем: [latex] h=\frac{v^{2}}{g}-\frac{v^{2}}{2\cdot g} [/latex], т.е [latex]h=\frac{v^{2}}{2\cdot g}[/latex].
  4. Остается только найти ускорение свободного падения ( [latex] g [/latex] ).Для этого нужно найти силу притяжения ([latex] F [/latex]).Согласно закону гравитации сила притяжения ([latex] F [/latex]), которая действует на тело массой [latex] M [/latex] возле поверхности планеты равна: [latex] F=\frac{G\cdot m\cdot M}{R^{2}} [/latex], где [latex] m [/latex]- масса планеты, [latex] R [/latex] — радиус планеты, а [latex] G [/latex] — гравитационная постоянная, которая равна: [latex] G=6.67408\cdot 10^{-11} [/latex].
  5. Согласно второму закону Ньютона: [latex] g=\frac{F}{M} [/latex]. Подставляем [latex] F [/latex] и получаем:[latex] g=\frac{G\cdot m}{R^{2}} [/latex].
  6. Теперь есть все составляющие для нахождения высоты: [latex] h=\frac{v^{2}\cdot R^{2}}{2\cdot G\cdot m} [/latex].

Ссылки

 

Related Images:

ML 22

Задача взята тут.

Найти площадь равнобочной трапеции с основаниями  [latex]a[/latex] и [latex]b[/latex]  и углом [latex]\alpha[/latex]  при большем основании [latex]a[/latex].

Тесты

[latex]a[/latex] [latex]b[/latex] [latex]alpha[/latex] Square
15 10 0,785398 31.25
20 5 1.0472 162.38
30 20 0.523599 72.1687

Решение

Для нахождения площади трапеции используется формула: [latex]h*m[/latex] , где [latex]m[/latex] средняя линия, [latex]h[/latex] высота. [latex]h[/latex] находится как [latex]\tan[/latex] [latex]\alpha[/latex] [latex]\cdot[/latex] [latex](a-b)/2[/latex] ,  [latex]m[/latex] находится как [latex](a-b)/2[/latex].

Код

Решение на ideone

Related Images:

ML 9

Данная задача находится здесь.

Условие:

Определить периметр правильного [latex] m [/latex]-угольника, вписанного в окружность радиуса [latex] R [/latex].

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

Количество сторон правильного многоугольника [latex] m [/latex] и радиус [latex] R [/latex] описанной около него окружности.

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

Единственное число — периметр заданного многоугольника.

Тесты:

m R P
1 3 4 20.7846
2 6 5 30
3  8 13  79.5982
4 27 20 125.38

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

Код на сайте ideone.com можно получить здесь.

Убедиться в корректности формулы с помощью онлайн-калькулятора можно на этом сайте.

Решение:

Для решения данной задачи воспользуемся формулой для нахождения длины стороны правильного многоугольника с помощью радиуса описанной окружности: [latex]a=2\cdot R\cdot\sin{\frac{\pi}{m}}[/latex] , где [latex]R[/latex] — радиус описанной окружности, а [latex]m[/latex] — количество сторон правильного многоугольника. В задаче необходимо найти периметр, т.е. общую длину всех сторон: [latex]P=a\cdot m[/latex] . Таким образом, объединив формулы, получаем конечную формулу для нахождения периметра правильного многоугольника: [latex]P=\left(2\cdot R\cdot\sin{\frac{\pi}{m}}\right)\cdot m[/latex] , значение которой и необходимо вывести.

Источник формул : wikipedia.

 

 

Related Images:

ML12

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

Даны [latex]x,y,z[/latex]. Вычислить  [latex] a = x \arctan{y} — e^{1-z}[/latex] и [latex] b = \frac{\sqrt{\left|3-x^2 \right|}- \sqrt[3]{\left|y-x \right|}}{1-\frac{x^2}{2}+\frac{y^2}{4}-\frac{z^2}{8}}.[/latex]

Алгоритм решения:

1)В условии задачи не указано какие должны быть числа [latex]x,y,z[/latex] , поэтому правильнее всего использовать диапазон long double, чтобы включить как можно больше значений.

2)Подключим библиотеку <cmath> , с помощью которой подключим математические функции и, придерживаясь правил порядка вычислений, расставим скобки.

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

Тесты:

Ввод: # Вывод: #
x 1 a 0.971813
y 2 b 1.10457
z 3
Ввод: # Вывод: #
x -9 a -16.1645
y 13 b 2.19263
z 0
Ввод: # Вывод: #
x 7 a 10.361
y 11 b -0.107389
z 21

Здесь находится код в ideone.com

Related Images:

ML4

Задача:
Даны два действительных положительных числа. Найти среднее арифметическое и среднее геометрическое этих чисел.

Решение:

Так как нам в задаче не указано какими будут числа по длинне, мы используем тип данных long double, который поможет охватить весь их диапозон.

Для того, чтобы найти среднее арифметическое чисел нам нужно воспользоваться формулой [latex]A=\frac{x_1+x_2+ \ldots +x_n}{n}[/latex] , но так как у нас задано всего два числа, будем пользоваться этой формулой: [latex]A=\frac{a+b}{2}[/latex]

Среднее геометрическое вычисляется по формуле :[latex]G=\sqrt[n]{x_1+x_2+ \ldots +x_n}[/latex] , но нам понадобиться формула только для двух чисел: [latex]G=\sqrt{a\cdot b }[/latex]

Тесты:

 

Входные данные Выходные данные
1. -1 -3 -2

1.73205

2. 5 6 5.5

5,47723

3.  4 6  5

4.89898

4.  100 2.6  51.3

16.1245

Код: 

 

Задача взята отсюда.

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

Related Images:

ML8

Задача. Определить периметр правильного [latex]n[/latex]-угольника, описанного около окружности радиуса [latex]r[/latex].

Тесты

[latex]n[/latex] [latex]r[/latex] [latex]P[/latex]
4 2 16
3 5 51.9615
7 3 20.2261
5 5 36.3271
6 6 41.5692

Решение

Величину угла можно найти если задано только количество вершин — [latex]\frac{\pi\cdot(n-2))}{n}[/latex].

Для примера можно рассмотреть квадрат.
Без імені
Так как квадрат — правильный четырёхугольник, то центр вписанной окружности совпадает с центром описанной окружности.  [latex]R[/latex]  делит угол напополам — [latex]\frac{\alpha }{2}[/latex].  Отсюда получаем треугольник:

Без імені

[latex]\frac{\alpha }{2}[/latex] — половина угла квадрата, [latex]\frac{a}{2}[/latex] — половина стороны. Так как [latex]r[/latex] проходит перпендикулярно к стороне [latex]a[/latex], то мы можем воспользоваться формулой тангенса — [latex]tg\frac{\alpha }{2}=\frac{r}{0.5a}=\frac{2r}{a}[/latex] .

[latex]a=\frac{2r}{tg\frac{\alpha }{2}}[/latex].

Выводим формулу только с  [latex]n[/latex] и [latex]r[/latex].

[latex]P=\frac{2nr}{tg(\frac{\pi(n-2)}{2n})}[/latex].

Код

Код можно увидеть здесь

 

Related Images:

ML5

Задача. Даны два действительных числа. Найти среднее арифметическое этих чисел и среднее геометрическое их модулей.

Тесты

Первое число Второе число Среднее арифметическое Среднее геометрическое
156 82 119 113.102
-1158 2569 705.5 1724.79
256.3 289.5 272.9 272.395
9854.08 -493 4680.54 2204.1
-544.59 -12 -278.295 80.8398

Алгоритм решения

  1.  Так как в постановке задачи не указан диапазон чисел, то рациональнее всего использовать  тип данных long double, охватывающий наибольшее количество возможных вариантов входных данных.
  2. Нам необходимо найти среднее арифметическое чисел, которое  представляет собой  сумму всех зафиксированных значений, делённую на их количество. Для нашей задачи формула приобретает следующий вид:  [latex]A=\frac{a+b}{2}[/latex].
  3.  Для нахождения среднего геометрического модулей двух чисел воспользуемся формулой  [latex] G=\sqrt{\left|x_1\times x_2 \right|} [/latex].

Здесь находится код в ideone.com

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

Related Images:

ML6

Условие

Даны катеты прямоугольного треугольника. Найти его гипотенузу и площадь.

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

В одной строке задано два числа — катеты прямоугольного треугольника соответственно [latex]a[/latex] и [latex]b[/latex]. Значения катетов не превышают по модулю [latex]100[/latex].

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

В одной строке через пробел вывести гипотенузу и площадь данного прямоугольного треугольника с 2 знаками после запятой.

Тесты

 Входные данные  Выходные данные
 3 4  5.00 6.00
 10 10  14.14 50.00
 50 90  102.96 2250.00
 1 1  1.41 0.50
 9 99  99.41 445.50
 12 16  20.00 96.00
 9 12  15.00 54.00
 25 50  55.90 625.00
 56 42  70.00 1176.00

Код

Решение

Каждый в школе узнает как найти гипотенузу и площадь прямоугольного треугольника. Для того чтобы найти гипотенузу надо использовать теорему Пифагора [latex]c^2=a^2+b^2\rightarrow\sqrt(a^2+b^2)[/latex], а для нахождения площади — формулу [latex]a\cdot b/2[/latex].
Код программы

Related Images:

ML3

Задача

Дана длина ребра куба. Найти объем куба и площадь его полной поверхности.

Входные данные: задаем  число [latex] a [/latex].

Выходные данные: получаем объем куба и площадь его боковой поверхности.

Тесты

Ввод: 2 3 4 7
Вывод: 24 8 54 27 96 64 294 343

На входе программа считывает введенное нами число, и после выводит по формуле 2 нужных нам числа в разных строчках.

 

 

Related Images:

ML15

Задача. Определить силу притяжения [latex]F[/latex] между телами массы [latex]m_1[/latex] и [latex]m_2[/latex], находящимися на расстоянии [latex]r[/latex] друг от друга.

Тесты

Масса первого тела(кг) Масса второго тела(кг) Расстояние(м) Сила притяжения
2e15 1.5e10 1e3 2.00215e+09 Н
3e20 2.5 1e5 4.00430e+05 Н
7e-1 9 2 1.05113e-10 Н
3e20 0 1e5 0.00000e+00 Н
20 50 9e5 8.23931e-20 Н

Алгоритм

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

[latex]F=G\cdot \frac{m1\cdot m2}{r^2}[/latex],

где [latex]m_1[/latex], [latex]m_2[/latex] — массы тел,  [latex]r[/latex] — расстояние, а [latex]G[/latex] — гравитационная постоянная, значение которой задается в виде константы. Остальные значения вводятся с клавиатуры,  в системе СИ.

Результат программы выводится в стандартном виде. Точность мантиссы по умолчанию равна пяти знакам после запятой.

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

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

Related Images:

ML19

Задача. Известна длина окружности. Найти площадь круга, ограниченного этой окружностью.

Тесты

Длина окружности Точность  Результат работы программы
0 3 Невозможно выполнить для вырожденной окружности
-1 8 Ошибка ввода данных
34 -5 Ошибка ввода данных
25 18 Вывод с заданной точностью невозможен. Максимально возможная точность 13
25 13 49.7359197162173
83 5 548.20920
113.42 3 1 023.692
12 345 678 3 Вывод с заданной точностью невозможен. Максимально возможная точность 1
12 345 678 1 12 128 861 224 697.9
1 000 000 000 0 Число содержит больше 15 значащих цифр. Точный вывод невозможен

Алгоритм

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

Для удобства преобразуем известные нам формулы:

[latex]L = 2 \pi \cdot R[/latex]   [latex]S = \pi \cdot R^2 [/latex]  [latex] \longrightarrow[/latex]  [latex]R= \frac{L}{2\pi}[/latex]  [latex]\longrightarrow[/latex]  [latex]S = \frac{L^2}{4\pi}[/latex];

Воспользовавшись данной формулой находим искомую величину. Однако реализуя вывод с заданной точностью, требуется проверить сможет ли используемый нами тип данных double его обеспечить. Принимая во внимание факт, что данный тип хранит не более чем [latex]15[/latex] значащих десятичных цифр осуществляем следующую последовательность действий:

  1. Находим значение переменной possibleAccuracy как разность между максимально возможным количеством значащих цифр (maxAccuracy = [latex]15[/latex]) и имеющемся в данном числе .
  2. Отрицательное значение переменной possibleAccuracy сигнализирует о том, что найденная площадь круга превышает [latex] 10^{15} [/latex]. Следовательно, выводим предупреждение о том, что точный подсчет невозможен даже с нулевой точностью после запятой.
  3. При условии, что запрашиваемая точность превышает максимальную, выводим уведомление и значение максимальной точности.
  4. При ложности  пункта 2 и 3, используя манипулятор setprecision, выводим нужное количество знаков.

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

 

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

Related Images:

ML 24

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

Треугольник задан длинами сторон. Найти радиус вписанной [latex]r[/latex] и описанной [latex]R[/latex] окружностей.

Тесты :

[latex]a[/latex] [latex]b[/latex] [latex]c[/latex] [latex]r[/latex] [latex]R[/latex]
3 4 5 1 2.5
7.5 10 13 2.45012 6.52361
1 3 4 0 inf
1 1 3 Не существует! Не существует!

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

Алгоритм :

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

Если треугольник существует, проводим следующие вычисления (порядок сохранен) :

  1. Вычисляем полупериметр [latex]p[/latex] треугольника: [latex]p[/latex] = [latex]\frac{a + b + c}{2}[/latex]
  2. Находим площадь [latex]S[/latex] по формуле Герона: [latex]S[/latex] = [latex]\sqrt{p(p-a)(p-b)(p-c)}[/latex]
  3. Вычисляем радиус [latex]r[/latex] вписанной окружности по формуле: [latex]r[/latex] = [latex]\frac{S}{p}[/latex]
  4. Вычисляем радиус [latex]R[/latex] описанной окружности по формуле: [latex]R[/latex] = [latex]\frac{abc}{4S}[/latex]

Работающая версия программы на Ideaone.com :

Ideone.com

Почитать про треугольник можно здесь :

Треугольник — Википедия

Related Images:

e-olymp 126. Номер квартиры

Задача. Многоквартирный дом имеет [latex]N[/latex] квартир, [latex]P[/latex] подъездов и [latex]Q[/latex] этажей, причем на каждом этаже каждого подъезда имеется одинаковое количество квартир. Определить в каком подъезде и на каком этаже находится квартира с заданным номером [latex]K[/latex].

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

В единственной строке файла записаны значения [latex]N[/latex], [latex]P[/latex], [latex]Q[/latex], [latex]K[/latex]. [latex]1[/latex] ≤ [latex]K[/latex] ≤ [latex]N[/latex] ≤ [latex]1000[/latex], [latex]P\cdot Q[/latex] ≤ [latex]N[/latex].

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

В единственную строку файла нужно вывести номер подъезда и этаж, на котором находится квартира с номером [latex]K[/latex].

Задача взята с сайта e — olymp.

Тесты

  Входные данные    Выходные данные
      250   5    5     1                  1  1
        30   2    5     27                  2  4
      300  3    10   111                  2  2
        80  5     4     77                  5  4
        98  7     2     39                  3  2
        90  3     15   90                  3  15

Перед нами была поставлена задача определить в доме с заданным количеством квартир, подъездов и этажей положение конкретной квартиры, а именно указать номер подъезда и этаж. Для дальнейшего хода решения определим две целочисленные переменные — flatEntrance (количество квартир в одном подъезде) и flatFloor (количество квартир на одном этаже). Найдем номер подъезда получив целую часть от деления номера квартиры на количество квартир в одном подъезде. Далее выполняем проверку остатка от деления, если он отличен от нуля, то это указывает на то, что квартира находится уже в следующем подъезде. В таком случае инкрементируем переменную entrance.

Для нахождения номера этажа поступим аналогично. Однако следует проверить не делится ли номер квартиры на количество квартир в одном подъезде нацело, если да — она располагается на последнем этаже. Если этого не сделать, то в последующей формуле получим [latex]0[/latex]. В общем случае номер этажа находим поделив остаток от деления номера квартиры на количество квартир в подъезде на количество квартир на этаже (учитываем, что каждый новый подъезд предполагает продолжение нумерации с первого этажа). И снова выполняем проверку остатка от деления. При надобности инкрементируем переменную floor.

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

Следует отметить, что упростить программу и избавиться от двух условных операторов можно подключив библиотеку math.h и воспользовавшись функцией ceil() — округлением до ближайшего большего целого числа. Тогда код программы выглядит так:
Код программы
Засчитанное решение

Related Images:

e-olymp 125. Олимпиада

Условие

Олимпиада началась в [latex]h_1[/latex] часов [latex]m_1[/latex] минут [latex]s_1[/latex] секунд, а закончилась в эти же календарные сутки в [latex]h_2[/latex] часов [latex]m_2[/latex] минут [latex]s_2[/latex] секунд. Сколько времени (час мин сек) проходила олимпиада?

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

В первой строке записано время начала, а во второй время окончания олимпиады в формате час мин сек.

[latex]0 \le h_1 \le h_2 \le 23[/latex], [latex]0 \le m_1, m_2 \le 59[/latex], [latex]0 \le s_1, s_2 \le 59[/latex].

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

В единственную строку выходного файла нужно записать время продолжительности олимпиады в формате час мин сек.

Тестирование

Входные данные Выходные данные
1 9 30 0

12 45 30

3 15 30
2 9 30 30

12 45 0

3 14 30
3 9 45 0

12 30 30

2 45 30
4 9 45 30

12 30 0

2 44 30

Код

Решение

Очевидным решением задачи является вывод через пропуск разниц  [latex]h_2 — h_1[/latex], [latex]m_2 — m_1[/latex] и [latex]s_2 — s_1[/latex]. Однако если часы, минуты или секунды конца олимпиады будут меньше соответсвующих значений ее начала, то результат разницы разницы будет отрицательным. Чтобы этого избежать, существуют два if-блока, которые увеличивают количество секунд на [latex]60[/latex] и уменьшают количество минут на [latex]1[/latex], а так же выполняют аналогичные действия с минутами и часами в том случае, если входное количество минут или секунд начала олимпиады будут превышать соответственно минуты и секунды конца. После этого выводятся разницы, указанные в начале решения, которые теперь будут отображать реальную продолжительность олимпиады и гарантированно будут неотрицательными.

Ссылки

Условие задачи на E-Olymp;

Код программы на Ideone.com;

Подтверждение решения на E-Olymp.

Related Images:

e-olymp 929 Параллелограмм

Задача взята с сайта e-olymp

Условие:

Задано 4 числа [latex]a, b, c, d[/latex] определяющие длины отрезков. Определить, можно ли с этих отрезков образовать параллелограмм.

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

В единственной строке задано 4 числа через пробел.

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

Вывести в единственной строке слово «YES«, если параллелограмм образовать можно или «NO» (без кавычек) в противном случае.

Тесты

Входные данные Выходные данные
1 2 4 2 4 YES
2 2 4 2.5 4 NO
Решение:

Параллелограммом  называется четырехугольник у которого противолежащие стороны равны. Чтобы четырехугольник со сторонами [latex]a, b, c, d[/latex] являлся параллелограммом должно выполнятся одно из трех условий:

[latex]a=c[/latex] и [latex]b=d[/latex];

[latex]a=b[/latex] и [latex]c=d[/latex];

[latex]a=d[/latex] и [latex]c=b[/latex],

Код на IDEONE можно увидеть здесь.

Ссылку на полностью засчитанное решение на сайте e-olymp.com можно найти здесь

Related Images:

e-olymp 478. Белые кубики

Условие

Профессор Самоделкин задумал изготовить кубики из брусков белого цвета. Длина каждого ребра равна 1 дм. После изготовления кубиков профессор решил сделать все кубики также белого цвета. Сколько кубиков со стороной 1 дм сможет изготовить из одного бруска профессор, и сколько сторон придется ему покрасить, если известно, что длины сторон брусков — целые числа и заданы также в дециметрах.

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

В одной строке задано три целых числа – размеры бруска в дм, не превышающие 1000000.

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

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

Код

Тестирование

Входные данные Выходные данные
1 1 2 3 6 14
2 1 1 2 2 2
3 2 2 2 8 24
4 3 4 5 60 266

Решение

Т.к. сторона изготовленных кубиков равна 1 дм, можем узнать их количество, найдя объём бруска по формуле:[latex] a \cdot b \cdot c[/latex]. Что бы узнать сколько сторон необходимо покрасить покрасить, нужно от количества всех сторон отнять уже окрашенные в белый цвет. Для нахождения всех сторон умножаем количество всех кубиков на количество сторон одного кубика: [latex]6 \cdot a \cdot b \cdot c[/latex]. Количество уже окрашенных сторон кубиков можно получить, узнав площадь поверхности бруска:            [latex] 2 \cdot (a \cdot b+a \cdot c+b \cdot c)[/latex]. Находим разность (кол-во неокрашенных сторон): [latex]a \cdot b \cdot c \cdot 6 — 2 \cdot (a \cdot b+a \cdot c+b \cdot c)[/latex].

Ссылки

Условие задачи на E-Olymp;

Код программы на Ideone.com;

Подтверждение решения на E-Olymp.

Related Images:

e-olymp 63. Анфиса и цветы

Задача. Анфиса и цветы

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

 Мурзик одну из цветочных клумб сделал в виде шахматной доски размерами [latex]m[/latex] на [latex]n[/latex], в каждой клеточке которой растет какой-то цветок. Иногда на эту клумбу он выводит на прогулку Анфису (да, не удивляйтесь, они действительно друзья). Анфиса, начиная всегда с верхнего левого угла передвигается по клумбе к правому нижнему и собирает цветы, причем таким образом, чтобы каждый раз проходить новым маршрутом, а Мурзик на выходе вручает ей кусочек сыра.

Посчитать, какое наибольшее количество кусочков сыра получит Анфиса, если она все время старается сохранить как можно больше цветов. При каждом очередном своем проходе Анфиса обязательно должна собрать как минимум один цветок.

<

h4″>Входные данные

В одной строке заданы два числа m и n [latex]\left( n, 0 < m, n ≤ 2\cdot 10^9 \right)[/latex].

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

Вывести наибольшее количество кусочков сыра, которые может получить Анфиса.

Также условие задачи можно посмотреть здесь.

Реализация

Тестирование

Входные данные (m, n) Выходные данные
1 2, 3 3
2 3, 3 5
3 3, 4 7
4 4, 3 7
6 5, 7 25

Алгоритм решения

Задана цветочная клумба в виде шахматной доски размерами [latex]m[/latex] на [latex]n[/latex]. Очевидно, что количество цветов на данной клумбе равно [latex]m\cdot n[/latex]. Пусть Анфиса, совершая свое очередное передвижение, начиная с левого верхнего угла клумбы и направляясь к правому нижнему,  съедает latex\cdot(n-1)[/latex]  цветов, так как, согласно условию задачи, Анфиса обязательно должна собрать как минимум один цветок при каждом проходе. После каждого такого прохода на выходе она получает один кусочек сыра.

Следовательно, имеет место следующая формула: [latex]p=(m-1)\cdot(n-1)+1[/latex], где p — наибольшее количество кусочков сыра, которое может получить Анфиса. Действительно, если [latex]m=2[/latex], [latex]n=3[/latex], то получаем [latex]p=3[/latex].

Ссылка на засчитанное решение.

Для запроса на выполнение нажать здесь.

Related Images: