4002: 【位运算】2024E-响应报文时间

金币值:1 时间限制:1.000 s 内存限制:128 M
正确:61 提交:106 正确率:57.55% 命题人:

题目描述

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

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

当 MaxRespCode < 128,MaxRespTime = MaxRespCode; 

当 MaxRespCode ≥ 128,MaxRespTime = (mant | 0x10) << (exp + 3); 

注:exp最大响应时间的高5~7位;mant为最大响应时间的低4位 其中接收到的MaxRespCode 最大值为 255,以上出现所有字段均为无符号数。 

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

输入格式

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

输出格式

HOST发送响应报文的时间。

输入样例    复制

2
0 255
200 60

输出样例    复制

260

提示

收到2个报文。 

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

第200秒收到第2个报文,响应时间为60秒,则要到200+60 = 260秒响应,与第上面的报文的响应时间比较获得响应时间最小为260秒 

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