AtCoder BeginnerContest 014 B

解説
状態を2進数値化して考えて、指定の位置にビットが立っているかどうかで N 個の ON / OFF を調べる手技。
X と (1 << i) の論理積が 0 でないなら、i 番目にビットが立っている。

#include <bits/stdc++.h>
using namespace std;
 
int main() {
  int N, X; cin >> N >> X;
  int sum = 0;
  for(int i=0; i<N; i++) {
    int x; cin >> x;
    if(X & (1<<i)) sum += x;
  }
  
  cout << sum << endl;
  
  return 0;
}