loj#P6196. 「美团 CodeM 复赛」通信
「美团 CodeM 复赛」通信
题目描述
有 个信号塔,第 个塔的位置是 ,信号强度 ( 保证互不相同)。
有 个人,第 个人的位置是 ,一个人往左走一格要 秒,往右走一格要 秒。
这些人之间要传递信息,具体地,如果 有信息,那么 会依次做以下操作:
- 选择一个 满足 ,并找到一个 使得 并且 最大来保证通信。
- 同时向 移动,先到的会等另一个人直到两个人都到达。
- 等到 都到达 时,信息的传递瞬间完成,并且 瞬间回到原来的位置。
- 之后** 会失去信息**, 会获得信息。
请对每个 计算,如果初始 有信息,那么最少多少时间以后信息可以传递到 ,并输出最少时间的方案数,方案数对 取模。
一个方案可以被描述成 ,表示信息的传递是 $P_1\rightarrow P_2\rightarrow P_3 \rightarrow \dots \rightarrow P_t$。
两个方案被认为是不同的当且仅当 不同或者存在一个 使得 不同。
特殊地,对于 ,我们认为最少时间是 ,方案数为 。
输入格式
第一行三个数 。
接下来一行 个数表示 。
输出格式
令 表示从 出发的最小时间, 表示最小时间的方案数。
输出两行,第一行 。
第二行 $g_1 \oplus g_2 \oplus g_3 \oplus g_4 \oplus \cdots \oplus g_n$。
请转成 **64 位有符号整形(C++ long long
)**计算 。
请转成 **32 位无符号整形(C++ unsigned int
)**计算 。
6 13 3
2 4 3 5 6 1
6
6
数据范围与提示