#include <iostream>
#include <algorithm>
using namespace std;
std::string desc( unsigned int sum, unsigned int size ) {
if ( sum == size ) {
return "all 1";
}
if ( sum == 0 ) {
return "all 0";
}
return "mixed";
}
int main() {
unsigned char data_1[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
unsigned char data_0[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
unsigned char data_01[] = { 0, 0, 0, 0, 0, 1, 1, 1, 1, 1 };
unsigned int data_1_size = sizeof( data_1 ) / sizeof( data_1[ 0 ] );
unsigned int data_0_size = sizeof( data_0 ) / sizeof( data_0[ 0 ] );
unsigned int data_01_size = sizeof( data_01 ) / sizeof( data_01[ 0 ] );
unsigned int sum_1 = std::accumulate( data_1, data_1 + data_1_size, 0 );
unsigned int sum_0 = std::accumulate( data_0, data_0 + data_0_size, 0 );
unsigned int sum_01 = std::accumulate( data_01, data_01 + data_01_size, 0 );
cout << "data_1 is " << desc( sum_1, data_1_size ) << endl;
cout << "data_0 is " << desc( sum_0, data_0_size ) << endl;
cout << "data_01 is " << desc( sum_01, data_01_size ) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RkOjpzdHJpbmcgZGVzYyggdW5zaWduZWQgaW50IHN1bSwgdW5zaWduZWQgaW50IHNpemUgKSB7CglpZiAoIHN1bSA9PSBzaXplICkgewoJCXJldHVybiAiYWxsIDEiOwoJfQoJaWYgKCBzdW0gPT0gMCApIHsKCQlyZXR1cm4gImFsbCAwIjsKCX0KCXJldHVybiAibWl4ZWQiOwp9CgppbnQgbWFpbigpIHsKCXVuc2lnbmVkIGNoYXIgZGF0YV8xW10gPSB7IDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEgfTsKCXVuc2lnbmVkIGNoYXIgZGF0YV8wW10gPSB7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAgfTsKCXVuc2lnbmVkIGNoYXIgZGF0YV8wMVtdID0geyAwLCAwLCAwLCAwLCAwLCAxLCAxLCAxLCAxLCAxIH07Cgl1bnNpZ25lZCBpbnQgZGF0YV8xX3NpemUgPSBzaXplb2YoIGRhdGFfMSApIC8gc2l6ZW9mKCBkYXRhXzFbIDAgXSApOwoJdW5zaWduZWQgaW50IGRhdGFfMF9zaXplID0gc2l6ZW9mKCBkYXRhXzAgKSAvIHNpemVvZiggZGF0YV8wWyAwIF0gKTsKCXVuc2lnbmVkIGludCBkYXRhXzAxX3NpemUgPSBzaXplb2YoIGRhdGFfMDEgKSAvIHNpemVvZiggZGF0YV8wMVsgMCBdICk7Cgl1bnNpZ25lZCBpbnQgc3VtXzEgPSBzdGQ6OmFjY3VtdWxhdGUoIGRhdGFfMSwgZGF0YV8xICsgZGF0YV8xX3NpemUsIDAgKTsKCXVuc2lnbmVkIGludCBzdW1fMCA9IHN0ZDo6YWNjdW11bGF0ZSggZGF0YV8wLCBkYXRhXzAgKyBkYXRhXzBfc2l6ZSwgMCApOwoJdW5zaWduZWQgaW50IHN1bV8wMSA9IHN0ZDo6YWNjdW11bGF0ZSggZGF0YV8wMSwgZGF0YV8wMSArIGRhdGFfMDFfc2l6ZSwgMCApOwoJY291dCA8PCAiZGF0YV8xIGlzICIgPDwgZGVzYyggc3VtXzEsIGRhdGFfMV9zaXplICkgPDwgZW5kbDsKCWNvdXQgPDwgImRhdGFfMCBpcyAiIDw8IGRlc2MoIHN1bV8wLCBkYXRhXzBfc2l6ZSApIDw8IGVuZGw7Cgljb3V0IDw8ICJkYXRhXzAxIGlzICIgPDwgZGVzYyggc3VtXzAxLCBkYXRhXzAxX3NpemUgKSA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0=