小 L 是学校气象社的记录员。一次户外观测结束后,她得到了一行混合文本,其中既有英文字母、空格和标点,也有若干个非负整数或非负小数。
为了准确找出其中最大的观测值,先约定“数值片段”的格式:
27;要么是一个只含一个小数点的小数,如 27.50;0 外,不含前导零。例如 0.25 合法,00.25 不合法;题目保证输入文本符合以上格式,并且至少包含一个数值片段。
你需要找出数值最大的片段。比较时必须按它们表示的精确数值比较,不能因为浮点数精度不足而判断错误。
如果最大数值出现多次,输出原文长度最长的片段。例如 5、5.0 和 5.000 的数值相同,应输出 5.000。如果数值和原文长度都相同,则输出最先出现的片段。
输出时必须保留该片段在文本中的原始写法。
输入仅一行字符串 s,表示观测记录。字符串可能包含空格。
输出一行,表示按上述规则选出的数值片段。
rain7,wind12.50;backup12.5,end3
12.50
A314159265358979323846;B271828182845904523536;C314159265358979323845.9
314159265358979323846
p6.00000000000000000001;q6.00000000000000000010;r5.99999999999999999999;s6.0000000000000000001000
6.0000000000000000001000
文本中依次出现 7、12.50、12.5 和 3。
其中 12.50 与 12.5 的精确数值相同,且都大于另外两个数。因为 12.50 的原文更长,所以输出 12.50。
数值片段已经超过常见整数类型的范围,直接转换成 long long 会出错。
片段 6.00000000000000000010 与 6.0000000000000000001000 的精确数值相同。后者原文更长,因此被选中。本组样例也提醒你:末尾的零不改变小数的值,但会影响平局规则。
记 |s| 为输入字符串长度,L 为单个数值片段的最大长度。
对于所有测试数据,保证:
本题共 10 个测试点,每个测试点 10 分。
| 测试点编号 | \lvert s\rvert\le | L\le | 特殊性质 |
|---|---|---|---|
| 1 | 50 | 6 | B |
| 2 | 10^3 | 15 | B |
| 3 | 10^3 | 100 | A |
| 4 | 2\times10^5 | 10^5 | A |
| 5\sim6 | 10^4 | 15 | B |
| 7 | 10^4 | 100 | 无 |
| 8\sim10 | 2\times10^5 | 10^5 | 无 |
特殊性质 A:文本中所有数值片段都是整数。
特殊性质 B:每个数值片段的原文长度都不超过 15。