#24. 史莱姆合并
史莱姆合并
题目描述
初始时,有 个史莱姆排成一行,第 个史莱姆的重量为 。
现在要把史莱姆合并起来。合并分两步,第一步,先将这 个史莱姆合并成 个,方法是在 个史莱姆中间放置 个隔板,把 个史莱姆分成 段,那么过一段时间后,同一段的史莱姆就会慢慢融合在一起,合并形成一个新的史莱姆,其重量为这一段原先的所有史莱姆的重量的 异或和 。记第 段得到的新史莱姆的重量为 。
当 个史莱姆变成 个史莱姆之后,开始进行第二步,把所有隔板拿走,则这 个史莱姆会再次慢慢融合,最终形成一个史莱姆,其重量为这 个史莱姆的重量的 按位或 的值。记最终形成的史莱姆的重量为 ,则
。其中 | 表示位运算中的 按位或 运算。
问:在第一步,如何放置隔板,可以使得第二步最终得到的史莱姆的重量 最小?你只需要输出这个最小值。
输入
第一行:,
第二行: 个整数
输出
一个整数,表示 的最小值。
样例输入
3 2
1 5 7
样例输出
3
数据范围
100% 的数据:。