Олимпиадный тренинг

Задача . B. Помогите Тридевятому царству 2


Некоторое время программа для округления чисел, разработанная участниками Codeforces во время одного из предыдущих раундов, помогала жителям Тридевятого царства переводить числа в более удобочитаемый формат. Однако время шло, экономика Тридевятого царства развивалась, росли масштабы операций, царским указом был основан Тридевятый банк, и очень скоро даже округление не помогало быстро определить хотя бы порядок чисел, с которыми проводились операции. Да и округление до целого было не очень удобно — ведь банку нужно представлять все числа с точностью до 0.01, а не до целого.

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

  • Число содержит целую и дробную части, разделенные символом «.» (десятичная точка).
  • Цифры целой части числа разбиваются для удобочитаемости на группы по три разряда, начиная с младших разрядов, группы разделяются символом «,» (запятая). Например, если целая часть числа равна 12345678, то она запишется в финансовом формате как 12,345,678
  • Дробная часть числа в финансовом формате должна содержать ровно 2 цифры. Соответственно, если исходное число (которое переводится в финансовый формат) содержит менее двух цифр в дробной части (или не содержит их вовсе) — она дополняется нулями до длины 2. Если дробная часть числа содержит более двух цифр — лишние цифры просто отбрасываются (округление не производится — см. примеры тестов).
  • Знак минус при записи числа в финансовом формате не пишется. Вместо этого, если исходное число имело знак минус, результат записывается в круглых скобках.
  • Не стоит забывать, что Тридевятый банк работает в заморской валюте — змейках ($), поэтому непосредственно перед числом в финансовом формате (внутри скобок, если они необходимы в записи числа) необходимо ставить знак «$».

Например, по вышеизложенным правилам число 2012 запишется в финансовом формате как «$2,012.00», а число -12345678.9 — как «($12,345,678.90)».

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

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

На входе записано число для перевода в финансовый формат. Длина записи числа не превосходит 100 символов, включая (возможные) знак «-» (минус) и «.» (десятичная точка). Запись числа корректна, то есть:

  • Запись числа содержит только символы из множества {«0» – «9», «-», «.»}.
  • Десятичная точка (если она есть) единственна и содержит перед собой и после себя ненулевое количество десятичных цифр
  • Число не может начинаться с цифры 0, за исключением случая, когда его целая часть равна нулю (в этом случае целая часть состоит из одного нуля: «0»).
  • Знак минус (если он есть) единственен и стоит в самом начале записи числа
  • Если число тождественно равно 0 (то есть записано, например, как «0» или «0.000»), то не содержит перед собой знак минус.
  • Входные данные не содержат пробелов.
  • Запись числа содержит хотя бы одну десятичную цифру.
Выходные данные

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

Примечание

Обратите внимание на второй и третий тесты из примеров, демонстрирующие, что знак числа в финансовом формате (и, соответственно, наличие скобок) определяется знаком округляемого числа, а не знаком числа, полученного после округления.


Примеры
Входные данныеВыходные данные
1 2012
$2,012.00
2 0.000
$0.00
3 -0.00987654321
($0.00)
4 -12345678.9
($12,345,678.90)

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя