#include <iostream>
#include <algorithm>
void ShowAllPermutationsFromFirst(std::string first_permutation_string) {
while (std::next_permutation(first_permutation_string.begin(),
first_permutation_string.end())) {
std::cout << first_permutation_string << '\n';
}
}
std::string CreateFirstPermutation(size_t number_of_zeros,
size_t number_of_ones) {
std::string zeros_string(number_of_zeros, '0');
std::string ones_string(number_of_ones, '1');
return zeros_string + ones_string;
}
void ShowPermutations(size_t number_of_zeros, size_t number_of_ones) {
ShowAllPermutationsFromFirst(
CreateFirstPermutation(number_of_zeros, number_of_ones));
}
int main() {
ShowPermutations(2, 2);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdm9pZCBTaG93QWxsUGVybXV0YXRpb25zRnJvbUZpcnN0KHN0ZDo6c3RyaW5nIGZpcnN0X3Blcm11dGF0aW9uX3N0cmluZykgewogIHdoaWxlIChzdGQ6Om5leHRfcGVybXV0YXRpb24oZmlyc3RfcGVybXV0YXRpb25fc3RyaW5nLmJlZ2luKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9wZXJtdXRhdGlvbl9zdHJpbmcuZW5kKCkpKSB7CiAgICBzdGQ6OmNvdXQgPDwgZmlyc3RfcGVybXV0YXRpb25fc3RyaW5nIDw8ICdcbic7CiAgfQp9CgpzdGQ6OnN0cmluZyBDcmVhdGVGaXJzdFBlcm11dGF0aW9uKHNpemVfdCBudW1iZXJfb2ZfemVyb3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG51bWJlcl9vZl9vbmVzKSB7CiAgc3RkOjpzdHJpbmcgemVyb3Nfc3RyaW5nKG51bWJlcl9vZl96ZXJvcywgJzAnKTsKICBzdGQ6OnN0cmluZyBvbmVzX3N0cmluZyhudW1iZXJfb2Zfb25lcywgJzEnKTsKICByZXR1cm4gemVyb3Nfc3RyaW5nICsgb25lc19zdHJpbmc7Cn0KCnZvaWQgU2hvd1Blcm11dGF0aW9ucyhzaXplX3QgbnVtYmVyX29mX3plcm9zLCBzaXplX3QgbnVtYmVyX29mX29uZXMpIHsKICBTaG93QWxsUGVybXV0YXRpb25zRnJvbUZpcnN0KAogICAgICBDcmVhdGVGaXJzdFBlcm11dGF0aW9uKG51bWJlcl9vZl96ZXJvcywgbnVtYmVyX29mX29uZXMpKTsKfQoKaW50IG1haW4oKSB7CiAgU2hvd1Blcm11dGF0aW9ucygyLCAyKTsKICByZXR1cm4gMDsKfQ==