#include <cstdio>
using namespace std;
void recur_start(int len, int n);
void recur_process(char *buffer, int len, int start, int n);
int main() {
recur_start(7, 3);
return 0;
}
void recur_start(int len, int n) {
char *buffer = new char[len + 1]; buffer[len] = 0;
recur_process(buffer, len, 0, n);
delete[] buffer;
}
void recur_process(char *buffer, int len, int start, int n) {
if(start == len) {
if(!n)
puts(buffer);
return;
}
if(n) {
buffer[start] = '1';
recur_process(buffer, len, start + 1, n - 1);
}
buffer[start] = '0';
recur_process(buffer, len, start + 1, n);
}
I2luY2x1ZGUgPGNzdGRpbz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgcmVjdXJfc3RhcnQoaW50IGxlbiwgaW50IG4pOwp2b2lkIHJlY3VyX3Byb2Nlc3MoY2hhciAqYnVmZmVyLCBpbnQgbGVuLCBpbnQgc3RhcnQsIGludCBuKTsKCmludCBtYWluKCkgewoJcmVjdXJfc3RhcnQoNywgMyk7CgkKCXJldHVybiAwOwp9Cgp2b2lkIHJlY3VyX3N0YXJ0KGludCBsZW4sIGludCBuKSB7CgljaGFyICpidWZmZXIgPSBuZXcgY2hhcltsZW4gKyAxXTsgYnVmZmVyW2xlbl0gPSAwOwoJCglyZWN1cl9wcm9jZXNzKGJ1ZmZlciwgbGVuLCAwLCBuKTsKCQoJZGVsZXRlW10gYnVmZmVyOwp9Cgp2b2lkIHJlY3VyX3Byb2Nlc3MoY2hhciAqYnVmZmVyLCBpbnQgbGVuLCBpbnQgc3RhcnQsIGludCBuKSB7CglpZihzdGFydCA9PSBsZW4pIHsKCQlpZighbikKCQkJcHV0cyhidWZmZXIpOwoJCXJldHVybjsKCX0KCQkKCWlmKG4pIHsKCQlidWZmZXJbc3RhcnRdID0gJzEnOwoJCXJlY3VyX3Byb2Nlc3MoYnVmZmVyLCBsZW4sIHN0YXJ0ICsgMSwgbiAtIDEpOwoJfQoJCglidWZmZXJbc3RhcnRdID0gJzAnOwoJcmVjdXJfcHJvY2VzcyhidWZmZXIsIGxlbiwgc3RhcnQgKyAxLCBuKTsKfQ==