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; }