#include <iostream>
#include <climits>
#include <limits>
#include <bitset>
#include <cassert>
bool is_null(int n)
{
size_t bit_sum = 0;
const int bit_size = sizeof(int) * CHAR_BIT;
std::bitset<bit_size> bits(n);
for(size_t i = 0; i < bits.size(); ++i)
{
bit_sum += bits[i];
}
return bit_sum == 0;
}
int main()
{
assert(is_null(0) == true);
assert(is_null(1) == false);
assert(is_null(-1) == false);
assert(is_null(std::numeric_limits<int>::min()) == false);
assert(is_null(std::numeric_limits<int>::max()) == false);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2xpbWl0cz4KI2luY2x1ZGUgPGxpbWl0cz4KI2luY2x1ZGUgPGJpdHNldD4KI2luY2x1ZGUgPGNhc3NlcnQ+Cgpib29sIGlzX251bGwoaW50IG4pCnsKCXNpemVfdCBiaXRfc3VtID0gMDsKCQoJY29uc3QgaW50IGJpdF9zaXplID0gc2l6ZW9mKGludCkgKiBDSEFSX0JJVDsKCXN0ZDo6Yml0c2V0PGJpdF9zaXplPiBiaXRzKG4pOwoJCglmb3Ioc2l6ZV90IGkgPSAwOyBpIDwgYml0cy5zaXplKCk7ICsraSkKCXsKCQliaXRfc3VtICs9IGJpdHNbaV07Cgl9CgkKCXJldHVybiBiaXRfc3VtID09IDA7Cn0KCmludCBtYWluKCkKewoJYXNzZXJ0KGlzX251bGwoMCkgPT0gdHJ1ZSk7CgkKCWFzc2VydChpc19udWxsKDEpID09IGZhbHNlKTsKCWFzc2VydChpc19udWxsKC0xKSA9PSBmYWxzZSk7CgkKCWFzc2VydChpc19udWxsKHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWluKCkpID09IGZhbHNlKTsKCWFzc2VydChpc19udWxsKHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCkpID09IGZhbHNlKTsKCQoJcmV0dXJuIDA7Cn0=