1. 题目描述
具体题目描述如下:
IGMP 协议中,有一个字段称作最大响应时间(MaxResponseTime),HOST收到查询报文,解析出 MaxResponseTime 字段后,需要在 (0,MaxResponseTime](s)时间内选取随机时间回应一个响应报文,如果在随机时间内收到一个新的查询报文,则会根据两者时间的大小,选取小的一方剧新回应时间。
最大响应时间有如下计算方式:
当 MaxRespcode < 128,MaxRespTime = MaxRespcode;
当 MaxRespcode >= 128,MaxRespTime = ( mant | ex10 ) << ( exp + 3 );| 0 | 123 | 4567 || 1 | exp | mant |
注:exp 最大响应时间的高 5~7 位;mant 为最大响应时间的低4 位。
其中接收到的 maxRespcode 最大值为 255,以上出现所有字段均为无符号数。
现在我们认为 HOST 接收到查询报文时,选取的随机时间必定为最大值。
现给出 HOST 收到查询报文个数 C ,HOST 收到报文的时间 $T$,以及查询报文的最大响应时间字段值 M ,请计算出 HOST 发送响
应报文的时间。
2. 输入描述
第一行为查询报文个数C,后续每行分别为 HOST 收到报文时间T,及最大响应字段 M,以空格分割。
️3. 输出描述
HOST 发送响应报文的时间。
补充说明:
用例确定只会发送一个响应报文,不存在计时结束后依然收到查询报文的情况。
4. 示例演示
✨4.1 示例1
输入:
3 0 20 1 10 8 20输出:
11示例说明:
收到3个报文:
- 第 0秒收到第1个报文,响应时间为20秒,则要到 0+20=20 秒响应:
- 第1秒收到第2个报文,响应时间为 10;则要到 1+10=11 秒响应,与第上面的报文的响应时间比较获得响应时间最小为 11 秒。
- 第8秒收到第3个报文,响应时间为 20 秒,则要到8+20=28 秒响应;与第上面的报文的响应时间比较获得响应时间最小为 11 秒;
最终得到最小响应报文时间为 11 秒。
✨4.2 示例2
输入:
2 0 255 200 60输出:
260示例说明:
收到2个报文: