小橙的完美序列
题号:NC312221
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}给定一个长度为 n 的非负整数序列 a_1,a_2,\dots,a_n,称这个序列是「完美序列」,当且仅当,存在一个非负整数 x,使得对任意 i\in[1,n],都有 a_i=i\oplus x
\hspace{15pt}每次操作,小橙可以选择序列中的任意一个数字,并改为任意非负整数。小橙想知道,最少需要几次操作才能使序列变为「完美序列」,请你帮帮她。

【名词解释】
\hspace{15pt}\oplus:指位运算中的按位异或(Bitwise XOR),对两个整数的二进制表示按位进行异或运算。

输入描述:

\hspace{15pt}第一行输入一个整数 n\left(1\leq n\leq 10^5\right),表示序列的长度。
\hspace{15pt}第二行输入 n 个整数 a_i\left(0\leq a_i\leq 10^9\right),表示序列的各个元素。

输出描述:

\hspace{15pt}输出一个整数,表示将序列修改为完美序列需要的最少修改数字个数。
示例1

输入

复制
5
2 1 5 7 3

输出

复制
2

说明

\hspace{15pt}a_3 的值从 5 改为 0a_5 的值从 3 改为 6,得到序列 \{2,1,{\color{orange}{0}},7,{\color{orange}{6}}\}。此时对任意 i\in[1,5],均有 a_i=i\oplus 3,可以证明不存在修改次数更少的方案,因此答案为 2
示例2

输入

复制
4
1 4 2 3

输出

复制
3
示例3

输入

复制
2
6 6

输出

复制
1