After you had helped George and Alex to move in the dorm, they went to help their friend Fedor play a new computer game «Call of Soldiers 3».

The game has (m + 1) players and n types of soldiers in total. Players «Call of Soldiers 3» are numbered form 1 to (m + 1). Types of soldiers are numbered from 0 to n - 1. Each player has an army. Army of the i-th player can be described by non-negative integer xi. Consider binary representation of xi: if the j-th bit of number xi equal to one, then the army of the i-th player has soldiers of the j-th type.

Fedor is the (m + 1)-th player of the game. He assume that two players can become friends if their armies differ in at most k types of soldiers (in other words, binary representations of the corresponding numbers differ in at most k bits). Help Fedor and count how many players can become his friends.

Input

The first line contains three integers nmk (1 ≤ k ≤ n ≤ 20; 1 ≤ m ≤ 1000).

The i-th of the next (m + 1) lines contains a single integer xi (1 ≤ xi ≤ 2n - 1), that describes the i-th player's army. We remind you that Fedor is the (m + 1)-th player.

Output

Print a single integer — the number of Fedor's potential friends.

Sample test(s)
Input
7 3 1
8
5
111
17
Output
0
Input
3 3 3
1
2
3
4
Output
3

【分析】:
“<< ”   位左移,相当于乘以2
“>>" 位右移,相当于除以2
“&” 按为与,位数都为1时为1,否则为0
“^” 异或,不同为1,相同为0 新技能: a & ( << j ) 表示数a二进制的第j位是什么
【代码】:
#include <bits/stdc++.h>

using namespace std;
const int maxn = ;
int n,m,k,a[maxn]; int main()
{
int sum=,ans=;
cin>>n>>m>>k;
for(int i=;i<=m;i++)
cin>>a[i];
for(int i=;i<m;i++)
{
sum=; //注意内部清零
for(int j=;j<n;j++)
if( ( a[i]&(<<j) )^( a[m]&(<<j) ) ) sum++;
if(sum<=k) ans++;
} cout<<ans<<endl;
return ;
}

最新文章

  1. Linux内核笔记——内存管理之块内存分配
  2. Activity的保存状态和状态恢复
  3. java ==与equal
  4. JS中call和apply
  5. Dynamic CRM 2013学习笔记(三十八)流程1 - 操作(action)开发与配置详解
  6. ChinaUnix上的帮助手册还不错!
  7. ip地址转化代码实例
  8. ASP.NET防止用户多次登录的方法
  9. SSH原理与运用一:远程登录(转)
  10. javascript关闭浏览器窗口
  11. 对于python WSGI的理解
  12. python 列表 字典 读写文件:pickle模块的基本使用
  13. UseCase事件描述叙事流规范
  14. iOS项目架构 小谈
  15. 长图的展开与收起(Android)
  16. 【二】JConsole、VisualVM
  17. 【QT】QPixmap在Label中自适应大小铺满
  18. Windows10远程桌面Ubuntu16.04
  19. Electron学习(一)——— electron的安装
  20. SublimeText插件eslint : 语法检测

热门文章

  1. 剑指Offer - 九度1372 - 最大子向量和(连续子数组的最大和)
  2. 《Cracking the Coding Interview》——第6章:智力题——题目2
  3. 5.修改haproxy配置文件
  4. css深入理解padding
  5. tarjan算法求LCA
  6. jQuery Ajax(load,post,get,ajax)
  7. Linq 聚合函数
  8. Spring 对属性文件的加密与解密
  9. Codeforces 672D Robin Hood(二分好题)
  10. JAVA项目-嗖嗖移动