4287 - 观测记录(record)

题目描述

小 L 是学校气象社的记录员。一次户外观测结束后,她得到了一行混合文本,其中既有英文字母、空格和标点,也有若干个非负整数或非负小数。

为了准确找出其中最大的观测值,先约定“数值片段”的格式:

  • 文本中每一段仅由数字和小数点组成的极长连续片段,都是一个数值片段;
  • 数值片段要么是一个整数,如 27;要么是一个只含一个小数点的小数,如 27.50
  • 小数点左右两侧都至少有一个数字;
  • 整数部分除单独的 0 外,不含前导零。例如 0.25 合法,00.25 不合法;
  • 数值片段的前后一定是文本边界,或者是数字和小数点以外的字符。

题目保证输入文本符合以上格式,并且至少包含一个数值片段。

你需要找出数值最大的片段。比较时必须按它们表示的精确数值比较,不能因为浮点数精度不足而判断错误。

如果最大数值出现多次,输出原文长度最长的片段。例如 55.05.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
说明

样例说明 1

文本中依次出现 712.5012.53

其中 12.5012.5 的精确数值相同,且都大于另外两个数。因为 12.50 的原文更长,所以输出 12.50

样例说明 2

数值片段已经超过常见整数类型的范围,直接转换成 long long 会出错。

样例说明 3

片段 6.000000000000000000106.0000000000000000001000 的精确数值相同。后者原文更长,因此被选中。本组样例也提醒你:末尾的零不改变小数的值,但会影响平局规则

数据范围

|s| 为输入字符串长度,L 为单个数值片段的最大长度。

对于所有测试数据,保证:

  • 1\le |s|\le 2\times10^5
  • 1\le L\le 10^5
  • s 中每个字符的 ASCII 码在 32126 之间;
  • s 至少包含一个数值片段,且所有数值片段均满足题目描述中的格式。

本题共 10 个测试点,每个测试点 10 分。

测试点编号\lvert s\rvert\leL\le特殊性质
1506B
210^315B
310^3100A
42\times10^510^5A
5\sim610^415B
710^4100
8\sim102\times10^510^5

特殊性质 A:文本中所有数值片段都是整数

特殊性质 B:每个数值片段的原文长度都不超过 15

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 2 枚
难度 基础


上一题 下一题