#P1368. 2023.05-B卷-HWOD机试 - 响应报文时间

2023.05-B卷-HWOD机试 - 响应报文时间

题目描述

GMP协议中,有一个字段称作最大响应时间(Max(Max ResponseResponse Time)Time)HOSTHOST收到查询报文,解折出 MaxResponsetimeMaxResponsetime 字段后,需要在(0MaxResponseTime)(0,MaxResponseTime)时间(s)(s)内选取随机时间回应一个响应报文,如果在随机时间内收到一个新的查询报文,则会根据两者时间的大小,选取小的一方刷新回应时间。

最大响应时间有如下计算方式:

MaxMax RespResp CodeCode < 128128, MaxMax RespResp TimeTime = MaxMax RespResp CodeCode;

MaxMax RespResp CodeCode 128\geq 128

00 11 22 33 44 55 66 77
11 expexp mantmant

MaxMax RespResp TimeTime = (mant(mant | 0x10)0x10)<<(exp+3)<< (exp + 3);

注: expexp最大响应时间的高55~77位: mantmant 为最大响应时间的低44位。

其中接收到的MaxRespCodeMaxRespCode 最大值为 255255,以上出现所有字段均为无符号数。

现在我们认为 HOSTHOST收到查询报文时,选取的随机时间必定为最大值,现给出 HOSTHOST 收到查询报文个数 CCHOSTHOST 收到该报文的时间TT,以及查询报文的最大响应时间字段值M M,请计算出HOSTHOST 发送响应报文的时间。

输入描述

第一行为查询报文个数C C,后续每行分别为 HOSTHOST 收到报文时间TT,及最大响应时间MM,以空格分割。

输出描述

HOSTHOST 发送响应报文的时间。

备注

用例确定只会发送一个响应报文,不存在计时结束后依然收到查询报文的情况。

样例

输入

3
0 20
1 10
8 20

输出

11

说明

收到33个报文, 第00秒收到第11个报文,响应时间为2020秒,则要到0+20=200+20=20秒响应;

11秒收到第22个报文,响应时间为1010秒,则要到1+10=111+10=11秒响应,与上面的报文的响应时间比较获得响应时间最小为1111秒:

88秒收到第33个报文,响应时间为2020秒,则要到8+20=288+20=28秒响应,与第上面的报文的响应时间比较获得响应时间最小为1111秒:

最终得到最小响应报文时间为1111秒。

输入

2
0 255
200 60

输出

260

说明

收到22个报文,

00秒收到第11个报文,响应时间为255255秒,则要到(15(15 | 0x10)0x10) <<(7+3)=31744<< (7 + 3)=31744秒响应;(mant=15exp=7)(mant = 15,exp =7)

200200秒收到第22个报文,响应时间为6060秒,则要到200+60260200+60-260秒响应与第上面的报文的响应时间比较获得响应时间最小为260260秒:

最终得到最小响应报文时间为260260秒。