e-olymp 7934. Коробка для свічок

Умова задачі

Маргарита любить свої дні народження. Вона дійсно щаслива, коли задуває свічки під мелодію «Happy Birthday». Кожного року, починаючи з досягнення нею чотирьохрічного віку, вона складає свої свічки з дня народження (по одній за кожен рік віку) в коробку для свічок. Її молодший брат Тео почав робити те ж саме у віці трьох років. Коробки Маргарити і Тео та свічки в них виглядають однаково.

Одного разу Маргарита вирішила порахувати, скільки свічок в неї у коробці:

  • Ні, ні, ні! Я молодша цього!

Вона щойно зрозуміла, що Тео кинув в її коробку декілька свічок з його днів народжень. Чи можете ви допомогти Маргариті виправити кількість свічок в її коробці?

Маючи різницю у віці між Маргаритою і Тео, кількість свічок в коробці Маргарити та число свічок в коробці Тео, визначте, скільки свічок Маргариті потрібно вийняти з її коробки, щоб в ній була потрібна кількість.

Вхідні дані

Перший рядок — число [latex] d (1 ⩽ d ⩽ 20) [/latex] — різниця у віці між Маргаритою і Тео.

Другий рядок — число [latex]m (4 ⩽ m < 1000)[/latex] — кількість свічок в коробці Маргарити.

Третій рядок — число [latex]t (0 ⩽ t < 1000)[/latex] — кількість свічок в коробці Тео.

Вихідні дані

Виведіть число свічок, яке Маргариті потрібно вийняти з її коробки, щоб в ній була правильна кількість.

Тести

ВХІДНІ ДАНІ ВИХІДНІ ДАНІ
1 2
26
8
4
2 4
48
3
9
3 7
110
14
11
4 10
568
78
139
5 13
800
37
211

Код програми

Розв’язання

Нехай [latex] x [/latex] — кількість років Маргарити в момент перевірки вмісту коробки зі свічками, тоді [latex] x — d [/latex] — вік Тео в цей момент. Правильна кількість свічок в коробці Маргарити — [latex] \frac{(4+x)(x-3)}{2} [/latex] та коробці Тео [latex] \frac{(3+x-d)(x-d-2)}{2} [/latex] (як суми членів арифметичної прогресії).  Правильна кількість свічок в обох коробках дорівнюватиме сумі свічок, що наявна в коробці Маргарити і Тео, відповідно [latex] m + t [/latex]. Складемо рівняння, яке після ряду перетворень набуде квадратного виду [latex] ax^2+bx+c=0 [/latex] — [latex]x^2 + (1 — d) x +  \frac{d^ 2 — d — 18 — 2 (m + t)}{2} = 0[/latex]. Знайдемо дискримінант [latex] b^2-4ac [/latex], а потім корінь рівняння за формулою [latex] \frac{-b+\sqrt{D}}{2a}[/latex], тому  [latex]x = \frac{(d-1) + \sqrt{D}}{2}[/latex], причому  [latex]\frac{-b — \sqrt{D}}{2a} [/latex] — не є потрібним розв’язком, адже набуватиме від’ємного значення. Тепер віднімемо від свічок, які Маргарита знайшла в коробці їx правильну кількість. Отже, зайвими будуть [latex]m — \frac{(4+x)(x — 3)}{2}[/latex] свічок.

Посилання

Задача на сайті e-olymp

Код розв’язання на ideone

Зараховаваний роз’язок

2 thoughts on “e-olymp 7934. Коробка для свічок

  1. Роботу зараховую, але Вам доведеться виправити недоліки перед тим як я дам наступне завдання.
    — Функція pow(x, y) призначена для випадів на кшталт такого $2.17^{1.23}$. Робить вона це через розклад у ряд елементи якого отримуються через піднесення до цілого степеня. Вам потрібно отримати квадрат числа? Дійте за означенням — множте число на себе, ось і уся робота.
    — В коді у Вас є таке:

    Цей рядок є superfluous, бо те що він обчислює нікуди не йде. Виходячи з опису він теж зайвий.
    — В опису ви використовуєте традиційне позначення $D$. Краще залишити саме його у коді — D. Погодьтесь, немає жодного сенсу використовувати дві різні назви.

    • Так, мені ці три моменти теж здалися кращими, бо таким і був першим варіант. Виправлю як було спочатку.

Добавить комментарий