B - 価格の合計 / AtCoderBeinnerContest#014
#include <iostream> using namespace std; void Solve(int n, int x) { int a[20], answer=0; for (int i=0; i<n; ++i) cin >> a[i]; for (int k=0; k<n; ++k) if (x >> k & 1) answer+=a[k]; cout << answer << endl; } int main(void) { int n, x; cin >> n >> x; Solve(n,x); return 0; }
ビット演算で1が立っていたら、その場所の価格を足し上げ、最後に出力。
~了~