奇偶校验
题目描述
数据在传输过程中可能出错,因此接收方收到数据后通常会校验传输的数据是否正确,奇偶校验是经典的校验方式之一。
给定 n 个非负整数 c1,c2,…,cn 代表所传输的数据,它们的校验码取决于这些整数在二进制下 1 的数量之和的奇偶性。如果这些整数在二进制下共有奇数个 1,那么校验码为 1;否则校验码为 0。你能求出这些整数的校验码吗?
输入格式
第一行,一个正整数 n,表示所传输的数据量。
第二行,n 个非负整数 c1,c2,…,cn,表示所传输的数据。
输出格式
输出一行,两个整数,以一个空格分隔:
第一个整数表示 c1,c2,…,cn 在二进制下 1 的总数量;
第二个整数表示校验码(0 或 1)。
样例输入
样例输入 1
4
71 69 83 80
样例输入 2
6
1 2 4 8 16 32
样例输出
样例输出 1
13 1
样例输出 2
6 0
样例解释
对于第一个样例,输入数据为 4 个整数:71,69,83,80。分别计算它们在二进制下 1 的个数:
- 71=64+4+2+1=(1000111)2,包含 4 个 1。
- 69=64+4+1=(1000101)2,包含 3 个 1。
- 83=64+16+2+1=(1010011)2,包含 4 个 1。
- 80=64+16=(1010000)2,包含 2 个 1。
所有整数二进制下 1 的个数之和为 4+3+4+2=13,是一个奇数。因此校验码为 1,最终输出 13 1。
数据范围
对于所有测试点,1≤n≤100,0≤ci≤255。