#include <bitset>
#include <iostream>
template <std::size_t N>
bool increase(std::bitset<N>& bs)
{
for (std::size_t i = 0; i != bs.size(); ++i) {
if (bs.flip(i).test(i) == true) {
return true;
}
}
return false;
}
int main()
{
std::bitset<5> bs;
do {
std::cout << bs << std::endl;
} while (increase(bs));
return 0;
}
I2luY2x1ZGUgPGJpdHNldD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPHN0ZDo6c2l6ZV90IE4+CmJvb2wgaW5jcmVhc2Uoc3RkOjpiaXRzZXQ8Tj4mIGJzKQp7CiAgICBmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpICE9IGJzLnNpemUoKTsgKytpKSB7CiAgICAgICAgaWYgKGJzLmZsaXAoaSkudGVzdChpKSA9PSB0cnVlKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKQp7CiAgICBzdGQ6OmJpdHNldDw1PiBiczsKCiAgICBkbyB7CiAgICAgICAgc3RkOjpjb3V0IDw8IGJzIDw8IHN0ZDo6ZW5kbDsKICAgIH0gd2hpbGUgKGluY3JlYXNlKGJzKSk7CiAgICByZXR1cm4gMDsKfQo=