题目描述
桌上有 张数字卡片排成一排,第 张上写着非负整数 。
你可以反复执行如下操作:
- 选定当前一排中连续的一段卡片 ;
- 若这段卡片上数字的按位异或和为 ,即 ,就把这一整段抽走;
- 抽走后,左右两侧剩余的卡片自动靠拢拼接。
单独一张卡片也算一段,因此写有 的卡片可以单张抽走。
请求出:经过若干次操作后,一排卡片最少能剩几张。
输入格式
第一行一个整数 。
第二行 个整数 。
输出格式
输出一个整数,表示最少剩余的卡片数。
样例
输入
2 3 3
输出
0
输入
4 1 1 2 2
输出
0
输入
3 2 1 2
输出
3
提示说明
【样例解释】
- 样例 1:,一次抽走整排,剩 张。
- 样例 2:先抽走 (),剩下 ;再抽走即可。也可以直接抽走整排()。
- 样例 3:所有连续段的异或和都不为 ,一张也抽不走,答案为 。
【数据范围】
对于全部数据:,。
| 子任务 | 测试点 | 分值 | 限制 |
|---|---|---|---|
| S1 | 1~2 | 10 | |
| S2 | 3~9 | 35 | |
| S3 | 10~20 | 55 | 无特殊限制 |
共 20 个测试点,每个测试点 5 分,合计 100 分。