eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Тривимірний пінбол у невагомості

Тривимірний пінбол у невагомості

Корпорація "Пінбол’Ко", яка займається виготовленням ігрових автоматів, розробила концепцію нової гри. Автомат називається "Тривимірний пінбол у невагомості". Гра проходить всередині прямокутного паралелепіпеда зі сторонами \textbf{A}, \textbf{B} та \textbf{C}, причому у ньому зберігається повна невагомістьь. Задача гравця -- запустити кульку з певної початкової точки у якомусь напрямку у вільний політ так, щоб вона зацепила якомога більшу кількість різних стінок паралелепіпеда і постаратись при цьому попасти в бонусну точку. Бонусна точка з'являється лише у тому випадку, якщо кулька вдарилось в усі стінки, але гравцю наперед відоме місце її появи. При польоті кулька не втрачає швидкість, а при дотиканні до стінок відбивається від них (відбувається абсолютно пружне зіткнення). За кожен дотик стінки, якої кулька не дотикалась до цього, гравцю нараховується \textbf{P} очок. Гра завершується, якщо кулька повторно дотикається до якоїсь стінки або прилітає в бонусну точку, яка появилась. Причому у другому випадку гравцю нараховується додадтковий бонус. Величина цього бонуса -- \textbf{P/D}, де \textbf{D} -- дистанція, пройдена кулькою за весь політ. Авторів гри зацікавило питання -- який максимальний бонус можна отримати при заданих розмірах ігрового паралелепіпеда та заданих початковій та бонусній точці. Для цього очевидно знадобиться програма. Довідавшись, що Ваня у даний момент зайнятий, і не хоче відволікатись на такі дріб'язкові послуги, інженери "Пінбол’Ко" дуже засмутились. Але до них дійшли слухи, що у "Кроне" зібрались талановиті програмісти, і вони вирішили звернутись за допомогою до вас. Отже, ваша задача -- за заданими параметрами прямокутного паралелепіпеда, початковому місцезнаходженню кульки у ньому (для простоти будемо вважати кульку точкою), а також координатам місця появи бонусної точки, обчисліть максимальний бонус, який можна отримати, запустивши кульку у якомусь напрямку. Початок координат вибрано так, що він співпадає з однією з вершин прямокутного паралелепіпеда, в якому відбувається гра, а осі координат напрямлені до трьох вершин, які мають з нею спільні грані. При зіткненні зі стнкою кулька змінює вектор свого руху за законом відбивання. Якщо кулька зіткнулась з гранню, то вважається, що вона зіткнулась відразу з \textbf{2}-ма сторонами, які з'єднані цією гранню. Відповідно, вона відбивається від них обох і гровцю нараховується бонус як за попадання у \textbf{2} стінки (але якщо кулька до цього вже зтикалась хоча б з однією з цих двох стінок, то гра завершується, а бонус за це зіткнення не нараховується). Зіткнення з вершиною паралелепіпеда вважається зіткненням відразу з \textbf{3}-мя сторонами, яким ця вершина належить. У цьому випадку, так само як і у попередньому - якщо кулька вже зтакалась хоча б з однією зі стінок, яким належить вершина, яку вона заділа - гра завершується, а бонус за це зіткнення не нараховується. \InputFile У першому рядку вхідного файлу задано \textbf{3} цілих додатних числа -- \textbf{A}, \textbf{B} та \textbf{C} (\textbf{2} ≤ \textbf{A}, \textbf{B}, \textbf{C} ≤ \textbf{1000}). Довжини прямокутного паралелепіпеда у напрямках \textbf{OX}, \textbf{OY} та \textbf{OZ} відповідно. У другому рядку задано три цілих додатніх числа -- \textbf{X_1}, \textbf{Y_1} та \textbf{Z_1}, які задають координаты початкового положення кульки в паралелепіпеді. У третьому рядку задано три цілих додатних числа -- \textbf{X_B}, \textbf{Y_B} та \textbf{Z_B}, які задають координати місця появи бонусної точки. Усі координати знаходяться в межах \textbf{0} < \textbf{X} < \textbf{A}, \textbf{0} < \textbf{Y} < \textbf{B}, \textbf{0} < \textbf{Z} < \textbf{C}. У четвертому рядку записано єдине ціле додатне число -- величина бонуса \textbf{P} (\textbf{1} ≤ \textbf{P} ≤ \textbf{1000}). \OutputFile У перший рядок вихідного файлу вивести єдине число - максимально можливий бонус, який можна набрати при заданих параметрах гри, округлений до \textbf{4}-х знаків після коми.
Ліміт часу 2 секунди
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
3 3 3
1 1 1
2 2 2
100
Вихідні дані #1
611.5470