#include <iomanip>
#include <iostream>
#include <numeric>
#include <vector>
using namespace std;
int main() {
const vector<bool> foo = { true, false, false, false, false, true, false, false };
int i = foo.size() - 1;
const auto bar = accumulate(next(cbegin(foo)), cend(foo), foo.front() ? -(1 << i) : 0, [&](const auto val, const auto it) { return val + (it << --i); });
cout << hex << bar;
}
I2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPG51bWVyaWM+CiNpbmNsdWRlIDx2ZWN0b3I+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7Cgljb25zdCB2ZWN0b3I8Ym9vbD4gZm9vID0geyB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlIH07CglpbnQgaSA9IGZvby5zaXplKCkgLSAxOwoJY29uc3QgYXV0byBiYXIgPSBhY2N1bXVsYXRlKG5leHQoY2JlZ2luKGZvbykpLCBjZW5kKGZvbyksIGZvby5mcm9udCgpID8gLSgxIDw8IGkpIDogMCwgWyZdKGNvbnN0IGF1dG8gdmFsLCBjb25zdCBhdXRvIGl0KSB7IHJldHVybiB2YWwgKyAoaXQgPDwgLS1pKTsgfSk7CgkKCWNvdXQgPDwgaGV4IDw8IGJhcjsKfQ==