#include <iostream>
#include <vector>
typedef std::vector<bool> vb;
int base10(const vb &value)
{
int result = 0;
int bit = 1;
for (vb::const_reverse_iterator b = value.rbegin(), e = value.rend(); b != e; ++b, bit <<= 1)
result += (*b ? bit : 0);
return result;
}
int main()
{
vb value1({1, 0, 1}); // 5
vb value2({1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1}); // 5
std::cout << base10(value1) << '\n' << base10(value2);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdHlwZWRlZiBzdGQ6OnZlY3Rvcjxib29sPiB2YjsKCmludCBiYXNlMTAoY29uc3QgdmIgJnZhbHVlKQp7CglpbnQgcmVzdWx0ID0gMDsKCWludCBiaXQgPSAxOwoKCWZvciAodmI6OmNvbnN0X3JldmVyc2VfaXRlcmF0b3IgYiA9IHZhbHVlLnJiZWdpbigpLCBlID0gdmFsdWUucmVuZCgpOyBiICE9IGU7ICsrYiwgYml0IDw8PSAxKQoJCXJlc3VsdCArPSAoKmIgPyBiaXQgOiAwKTsKCglyZXR1cm4gcmVzdWx0OwkKfQoKaW50IG1haW4oKQp7Cgl2YiB2YWx1ZTEoezEsIDAsIDF9KTsgLy8gNQoJdmIgdmFsdWUyKHsxLCAxLCAxLCAxLCAxLCAxLCAwLCAwLCAwLCAwLCAwLCAwLCAxLCAwLCAxfSk7IC8vIDUKCglzdGQ6OmNvdXQgPDwgYmFzZTEwKHZhbHVlMSkgPDwgJ1xuJyA8PCBiYXNlMTAodmFsdWUyKTsKCglyZXR1cm4gMDsKfQ==