#include <iostream>
using namespace std;
union X
{
struct
{
int i1, i2, i3;
bool b1, b2, b3;
};
struct
{
int is[3];
bool bs[3];
};
};
std::ostream& operator<<(std::ostream& os, const X& x)
{
os << "{ ";
for (int i = 0; i < 3; ++i)
os << x.is[i] << ' ' << x.bs[i] << ' ';
return os << '}';
}
int main() {
for (int i = 0; i < 3; ++i)
{
X x;
for (int j = 0; j < 3; ++j)
{
x.is[j] = rand();
x.bs[j] = rand() % 2;
}
std::cout << x << '\n';
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdW5pb24gWAp7CiAgICBzdHJ1Y3QKICAgIHsKICAgIAlpbnQgaTEsIGkyLCBpMzsKICAgIAlib29sIGIxLCBiMiwgYjM7CiAgICB9OwogICAgCiAgICBzdHJ1Y3QKICAgIHsKICAgIAlpbnQgaXNbM107CiAgICAJYm9vbCBic1szXTsKICAgIH07Cn07CgpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywgY29uc3QgWCYgeCkKewogICAgb3MgPDwgInsgIjsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgKytpKQogICAgICAgIG9zIDw8IHguaXNbaV0gPDwgJyAnIDw8IHguYnNbaV0gPDwgJyAnOwogICAgcmV0dXJuIG9zIDw8ICd9JzsKfQoKaW50IG1haW4oKSB7Cglmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkKCXsKCQlYIHg7CgkgICAgZm9yIChpbnQgaiA9IDA7IGogPCAzOyArK2opCgkgICAgewoJICAgICAgICB4LmlzW2pdID0gcmFuZCgpOwoJICAgICAgICB4LmJzW2pdID0gcmFuZCgpICUgMjsKCSAgICB9CgkgICAgc3RkOjpjb3V0IDw8IHggPDwgJ1xuJzsKCX0KfQ==