1193 : 走,做核酸去!

时间限制Time Limit 1 Sec 内存限制Memory Limit 128 MB 提交次数Submitted 600 Times 通过次数Solved 168 Times 标准评测Standard Judge

题目描述Description

最近每天都要做核酸,市区有许多免费核酸点,有的人很多排队很久,有的就比较空闲但又有点远,小明想知道最快做完核酸的方法,于是收集数据建立了一个模型.

每个核酸点有一个开始时间和一个结束时间,以及一个拟合函数f(x, y),表示如果在该核酸点开始时间起的第xx\geq0)分钟开始排队,且核酸点开设总时长为 y 分钟,则需要花费f(x, y)分钟做完核酸. 核酸点开设的起始时刻视为第0分钟,即x=0,开始之前不能排队,时间都按整数分钟计算. 如果预计做完核酸的时刻大于核酸点结束时刻,则在这里做不到核酸.

这样会不会到得晚反而做完的早?这是个玄学问题,因为有时候会突然多开一个队伍,而小明不敢轻易换队伍,怕随时可能又来一大批人.
但小明可以在到达核酸点之后先不排队,看准时机再上.

已知所有核酸点相关信息,小明想知道最早什么时刻能够做完核酸.

输入格式Input

100组测试数据,每组数据第一行为整数 n,表示有 n 个核酸点.

接下来 n 行每行顺序给出第 i 个核酸点的相关信息:

  • 起始时刻: hs_{i}:ms_{i}
  • 结束时刻: he_{i}:me_{i}
  • 小明能够到达的最早时刻: hb_{i}:mb_{i}
  • 花费时间的参数个数: m_{i}
  • m_{i} 个参数:a_{i0}, a_{i1},\cdots,a_{im_{i-1}}
  • 所有输入数据均为整数

其中参数描述该函数 f(x,y) = \lfloor \left| y\times sin(a_{i0}+ a_{i1}x +a_{i2}x^{2} + \cdots + a_{im_{i-1}}x^{m_{i-1}}) \right| \rfloor(“\lfloor \left| \right| \rfloor”表示取绝对值后向下取整), sin() 使用弧度.

  • 1 \leq n \leq 100
  • 1 \leq m_{i} \leq 6
  • -6 \leq a_{i0},a_{i1},\cdots,a_{im_{i-1}} \leq 6

时间都为24小时制且只精确到分钟,数据保证各核酸点的起止时间在同一天,即 00:00 ~ 23:59,且开始时间早于结束时间.

输出格式Output

最早做完核酸的24小时制时刻hf:mf,时与分都为带前导0的二位数,精确到分.

如果小明这一天做不到核酸,输出 “Oh No!”(如果能在某个核酸点结束时刻做完核酸,视为做到了核酸).

样例Sample

提示Hint

对于第一组样例,小明虽然能够在11:00到达第一个核酸点,但选择在11:11开始排队,这时x=131f(x)=\lfloor \left| 180\times sin(1 + 131) \right | \rfloor = 9,即小明能够在核酸点开始后的第 131+9=140分钟完成检测,即11:20.

出题Author

CSGrandeur

来源Source

湖南省第十八届大学生计算机程序设计竞赛(HNCPC2022)