CF143B Help Kingdom of Far Far Away 2
题目描述
在之前的一场比赛中,Codeforces 的选手们开发的四舍五入数字程序曾一度帮助遥远王国的居民将数字转换为更加易读的形式。然而,随着遥远王国经济的发展,各种业务的规模越来越大。于是,国王下令建立遥远王国银行。很快,即使有了四舍五入,所有业务中涉及的数字数量级也难以一眼辨识。此外,将数字四舍五入为整数并不方便,因为银行需要以 $0.01$ 的精度操作所有数字,而不仅仅是整数。
国王又颁布了一道命令:引入金融格式来表示金额。用金融格式存储数字时应遵守如下规则:
- 一个数字包括整数部分和小数部分,两者之间用"."(小数点)分隔。
- 为了让整数部分的数字更便于阅读,从个位开始每三位分为一组,相邻组之间用","(逗号)分隔。例如,如果数字的整数部分是 12345678,那么在金融格式下应表示为 12,345,678。
- 金融格式下,小数部分必须包含恰好两位数字。如果原始数字的小数部分不足两位(或没有小数部分),末尾补零直到长度为 2。如果小数部分超过两位,只保留前两位,其余部分直接舍弃(不进行四舍五入,见样例测试)。
- 当用金融格式存储数字时,不写负号。如果原始数字为负数,则结果用圆括号括起来。
- 注意,遥远王国银行启用了一种外来货币——“蛇币” ($),因此金融格式下的数字前需要加上 "$" 符号。如果该数字需要使用括号,则 "$" 也应放在括号内。
例如,根据上述规则,数字 2012 的金融格式为 “$2,012.00”,而数字 -12345678.9 的金融格式为 “($12,345,678.90)”。
遥远王国的商人们再次拜访了你,并希望你能为他们编写一个程序,将任意数字转换为金融格式。你能帮忙吗?
输入格式
输入包含一个需要转换为金融格式的数字。该数字的字符串长度不超过 $100$ 个字符,可能包括减号 “-” 和小数点 “.”。该数字的书写格式确保如下规则:
- 只包含 {"0" – "9", "-", "."} 这些字符。
- 如果包含小数点,则小数点唯一,且小数点前后均有至少一位数字。
- 数字不会以 $0$ 开头,除非整数部分就是零(此时整数部分保证只有一个零“0”)。
- 负号(如果有)唯一且出现在数字首位。
- 如果数字等于 $0$(如 “0” 或 “0.000”),则不会有负号。
- 输入数据不包含空格。
- 数字中至少包含一个十进制数字。
输出格式
请按照题目描述的金融格式将输入数字输出。
说明/提示
注意第二个和第三个样例测试。它们表明,金融格式下数字的符号(即是否加括号)仅由原始数字的符号决定,而不是转换为金融格式后得到的数的符号。
由 ChatGPT 5 翻译