#CSP202603A. 平衡数

平衡数

时间限制: 1.0 秒

空间限制: 512 MB

题目描述

小 P 在学习了位运算后,定义了如下“平衡数”:

  • 对于一个正整数 aa,如果其二进制表示中 10 的个数相等,则称其为平衡数。

这里的二进制表示以 1 为最高位,即不考虑更高位用于补位的 0。例如,正整数 1212 的二进制表示为 1100,包含两个 1 和两个 0。在实际存储中,更高位可能需要填 0 补位,如 00001100,在本题中无需考虑此种情况。

小 P 已经生成好了 nn 个正整数 a1,a2,,ana_1, a_2, \cdots, a_n,试编程统计里面有多少个平衡数。

输入格式

从标准输入读入数据。

输入的第一行包含一个正整数 nn,第二行包含空格分隔的 nn 个正整数 a1,a2,,ana_1, a_2, \cdots, a_n

输出格式

输出到标准输出。

输出一个整数,表示 a1,a2,,ana_1, a_2, \cdots, a_n 中平衡数的个数。

3
2 5 9
2

样例 1 解释

22 的二进制表示为 10,是平衡数;

55 的二进制表示为 101,不是平衡数;

99 的二进制表示为 1001,是平衡数。

子任务

50%50 \% 的测试点满足:0<ai2560 < a_i \le 256

全部的测试点满足:0<n1000 < n \le 1000<ai1090 < a_i \le 10^9