Завдання:
Вашій програмі надається належна , позитивна проста форма у форматі <numerator>/<denominator>
.
Для цього введення він повинен знайти дві дроби.
- Фракція, менша за вхід.
- Фракція, що більша за вхідний.
Обидві дроби повинні мати менший знаменник, ніж вхідний. З усіх можливих фракцій вони повинні мати найменшу різницю на вході.
Вихід:
Вихід програми повинен бути:
- Фракція, менша за вхід, у форматі
<numerator>/<denominator>
. - Далі йде пробіл (ASCII-код 32).
- Далі йде частка, що перевищує вхідний формат
<numerator>/<denominator>
.
Так:
«fraction that is < input» «fraction that is > input»
Правила:
- Усі виведені дроби повинні бути найменшими .
- Усі виведені дроби повинні бути належними дробами.
- Якщо немає можливих належних дробів, дозволених правилами, ви повинні вивести
0
замість дробу <вхід, а1
замість дробу> введення. - Ви можете вибрати, чи хочете ви отримувати дріб як аргумент командного рядка (наприклад
yourprogram.exe 2/5
) або підказку для введення користувачем. - Ви можете припустити, що програма не отримає недійсні дані.
- Виграє найкоротший код (у байтах, будь-якою мовою).
Будь-які нестандартні аргументи командного рядка (аргументи, які зазвичай не потрібні для запуску сценарію) зараховуються до загального числа символів.
Що ваша програма не повинна робити:
- Залежить від будь-яких зовнішніх ресурсів.
- Залежить від конкретного імені файлу.
- Виведіть що-небудь, крім необхідного виводу.
- Бігайте винятково довго. Якщо ваша програма працює на хвилину для дробів із шестизначним чисельником та знаменником (наприклад
179565/987657
) на середньому комп'ютері домашнього користувача, вона недійсна. - Виведіть дроби з
0
як знаменник. Ви не можете ділити на нуль. - Виведіть дроби з
0
чисельником. Ваша програма повинна виводити0
замість дробу. - Зменшити введений дріб. Якщо фракція, подана як вхідна, є скорочуваною, ви повинні використовувати дроби, як вона введена.
- Ваша програма не повинна бути написана мовою програмування, для якої до публікації цього виклику не існувало загальнодоступного компілятора / перекладача.
Приклади:
Вхід: 2/5
Вихід: 1/3 1/2
Вхід: 1/2
Вихід: 0 1
Вхід: 5/9
Вихід: 1/2 4/7
Вхід: 1/3
Вихід: 0 1/2
Вхід: 2/4
Вихід: 1/3 2/3
Вхід: 179565/987657
Вихід: 170496/937775 128779/708320
1/3 1/2
.