#include <algorithm>
#include <iostream>
void print_combination(const std::vector<int*>& v)
{
std::vector<std::size_t> indexes(v.size());
std::iota(indexes.begin(), indexes.end(), 0u);
do {
for (auto index : indexes) {
std::cout << ' ' << *v[index];
}
std::cout << std::endl;
} while (std::next_permutation(indexes.begin(), indexes.end()));
}
int main() {
int integers[] = {0, 0, 0};
print_combination({&integers[0], &integers[1], &integers[2]});
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdm9pZCBwcmludF9jb21iaW5hdGlvbihjb25zdCBzdGQ6OnZlY3RvcjxpbnQqPiYgdikKewoJc3RkOjp2ZWN0b3I8c3RkOjpzaXplX3Q+IGluZGV4ZXModi5zaXplKCkpOwoJc3RkOjppb3RhKGluZGV4ZXMuYmVnaW4oKSwgaW5kZXhlcy5lbmQoKSwgMHUpOwoKCWRvIHsKCSAgICBmb3IgKGF1dG8gaW5kZXggOiBpbmRleGVzKSB7CgkgICAgICAgIHN0ZDo6Y291dCA8PCAnICcgPDwgKnZbaW5kZXhdOwoJICAgIH0KCSAgICBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsOwoJCgl9IHdoaWxlIChzdGQ6Om5leHRfcGVybXV0YXRpb24oaW5kZXhlcy5iZWdpbigpLCBpbmRleGVzLmVuZCgpKSk7Cn0KCmludCBtYWluKCkgewoJaW50IGludGVnZXJzW10gPSB7MCwgMCwgMH07CgkKCXByaW50X2NvbWJpbmF0aW9uKHsmaW50ZWdlcnNbMF0sICZpbnRlZ2Vyc1sxXSwgJmludGVnZXJzWzJdfSk7Cn0K