#include <iostream>
#include <set>
using std::set;
using std::cout;
using std::endl;
int main() {
int A[4] = { 0, 1, 2, 3 };
int B[6] = { 2, 3, 4, 5, 5, 6 };
int C[5] = { 5, 6, 7, 8, 9 };
set<int> AB;
set<int> BC;
set<int> CA;
set<int> ABC;
AB.insert( A, A + 4 );
AB.insert( B, B + 6 );
BC.insert( B, B + 6 );
BC.insert( C, C+ 5 );
CA.insert( C, C + 5 );
CA.insert( A, A + 4 );
ABC.insert( A, A + 4 );
ABC.insert( B, B + 6 );
ABC.insert( C, C + 5 );
int maxSet = 0;
size_t maxSize = AB.size();
if ( BC.size() > maxSize ) {
maxSize = BC.size();
maxSet = 1;
}
if ( CA.size() > maxSize ) {
maxSize = CA.size();
maxSet = 2;
}
if ( ABC.size() > maxSize ) {
maxSize = ABC.size();
maxSet = 3;
}
cout << " Array Combination No. " << maxSet << " has MAX unique elements. " <<endl;
cout << " The max number of unique elements = " << maxSize << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c2V0PgoKdXNpbmcgc3RkOjpzZXQ7CnVzaW5nIHN0ZDo6Y291dDsKdXNpbmcgc3RkOjplbmRsOwoKaW50IG1haW4oKSB7CgogIGludCBBWzRdID0geyAwLCAxLCAyLCAzIH07CiAgaW50IEJbNl0gPSB7IDIsIDMsIDQsIDUsIDUsIDYgfTsKICBpbnQgQ1s1XSA9IHsgNSwgNiwgNywgOCwgOSB9OwoKICBzZXQ8aW50PiBBQjsKICBzZXQ8aW50PiBCQzsKICBzZXQ8aW50PiBDQTsKICBzZXQ8aW50PiBBQkM7CgogIEFCLmluc2VydCggQSwgQSArIDQgKTsKICBBQi5pbnNlcnQoIEIsIEIgKyA2ICk7CgogIEJDLmluc2VydCggQiwgQiArIDYgKTsKICBCQy5pbnNlcnQoIEMsIEMrIDUgKTsKCiAgQ0EuaW5zZXJ0KCBDLCBDICsgNSApOwogIENBLmluc2VydCggQSwgQSArIDQgKTsKCiAgQUJDLmluc2VydCggQSwgQSArIDQgKTsKICBBQkMuaW5zZXJ0KCBCLCBCICsgNiApOwogIEFCQy5pbnNlcnQoIEMsIEMgKyA1ICk7CgogIGludCBtYXhTZXQgPSAwOwogIHNpemVfdCBtYXhTaXplID0gQUIuc2l6ZSgpOwoKICBpZiAoIEJDLnNpemUoKSA+IG1heFNpemUgKSB7CgogICAgbWF4U2l6ZSA9IEJDLnNpemUoKTsKICAgIG1heFNldCA9IDE7CgogIH0KCiAgaWYgKCBDQS5zaXplKCkgPiBtYXhTaXplICkgewoKICAgIG1heFNpemUgPSBDQS5zaXplKCk7CiAgICBtYXhTZXQgPSAyOwoKICB9CgogIGlmICggQUJDLnNpemUoKSA+IG1heFNpemUgKSB7CgogICAgbWF4U2l6ZSA9IEFCQy5zaXplKCk7CiAgICBtYXhTZXQgPSAzOwoKICB9CgogIGNvdXQgPDwgIiBBcnJheSBDb21iaW5hdGlvbiBOby4gIiA8PCBtYXhTZXQgPDwgIiBoYXMgTUFYIHVuaXF1ZSBlbGVtZW50cy4gIiA8PGVuZGw7CiAgY291dCA8PCAiIFRoZSBtYXggbnVtYmVyIG9mIHVuaXF1ZSBlbGVtZW50cyA9ICIgPDwgbWF4U2l6ZSA8PCBlbmRsOwoKICByZXR1cm4gMDsKfQ==