Задача:
Вашей программе дается правильная , простая положительная дробь в формате <numerator>/<denominator>
.
Для этого ввода необходимо найти две дроби.
- Доля, которая меньше, чем вход.
- Доля, которая больше, чем вход.
Обе дроби должны иметь меньший знаменатель, чем входные. Из всех возможных дробей они должны иметь самую низкую разницу с входными данными.
Выход:
Вывод вашей программы должен быть:
- Фракция, которая меньше, чем ввод, в формате
<numerator>/<denominator>
. - Затем следует пробел (ASCII-код 32).
- Затем следует дробь, которая больше, чем ввод, в формате
<numerator>/<denominator>
.
Следующее:
«fraction that is < input» «fraction that is > input»
Правила:
- Все выведенные фракции должны быть в минимальных сроках .
- Все выводимые фракции должны быть правильными.
- Если не существует подходящих дробных значений, которые разрешены правилами, вы должны вывести
0
вместо ввода дробной <input и1
вместо дробной> input. - Вы можете выбрать, хотите ли вы получить дробь в качестве аргумента командной строки (например,
yourprogram.exe 2/5
) или запросить ввод пользователя. - Вы можете предположить, что ваша программа не получит неверный ввод.
- Самый короткий код (в байтах, на любом языке) выигрывает.
Любые нестандартные аргументы командной строки (аргументы, которые обычно не требуются для запуска скрипта) учитываются в общем количестве символов.
Что ваша программа не должна делать:
- Зависит от любых внешних ресурсов.
- Зависит от наличия определенного имени файла.
- Выведите что-нибудь кроме требуемого вывода.
- Возьмите исключительно долго бежать. Если ваша программа выполняется более минуты для дробей с 6-значным числителем и знаменателем (например,
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
.