#include <algorithm>
#include <iostream>
bool contains(const int (&m)[8][8], int value)
{
return std::any_of(std::begin(m), std::end(m), [value](const auto&a)
{
return std::any_of(std::begin(a), std::end(a), [value](int e)
{
return e == value;
});
});
}
bool contain_one_and_minus_one(const int (&m)[8][8])
{
return contains(m, 1) && contains(m, -1);
}
int main() {
int m[8][8] = {
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0}
};
std::cout << contain_one_and_minus_one(m) << std::endl;
m[4][2] = 1;
std::cout << contain_one_and_minus_one(m) << std::endl;
m[2][4] = -1;
std::cout << contain_one_and_minus_one(m) << std::endl;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKCmJvb2wgY29udGFpbnMoY29uc3QgaW50ICgmbSlbOF1bOF0sIGludCB2YWx1ZSkKewogICAgcmV0dXJuIHN0ZDo6YW55X29mKHN0ZDo6YmVnaW4obSksIHN0ZDo6ZW5kKG0pLCBbdmFsdWVdKGNvbnN0IGF1dG8mYSkKICAgIHsKICAgIAlyZXR1cm4gc3RkOjphbnlfb2Yoc3RkOjpiZWdpbihhKSwgc3RkOjplbmQoYSksIFt2YWx1ZV0oaW50IGUpCiAgICAJewogICAgCQlyZXR1cm4gZSA9PSB2YWx1ZTsKICAgIAl9KTsKICAgIH0pOwp9Cgpib29sIGNvbnRhaW5fb25lX2FuZF9taW51c19vbmUoY29uc3QgaW50ICgmbSlbOF1bOF0pCnsKCXJldHVybiBjb250YWlucyhtLCAxKSAmJiBjb250YWlucyhtLCAtMSk7Cn0KCmludCBtYWluKCkgewoJaW50IG1bOF1bOF0gPSB7CgkgICAgezAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9LAoJICAgIHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwfSwKCSAgICB7MCwgMCwgMCwgMCwgMCwgMCwgMCwgMH0sCgkgICAgezAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9LAoJICAgIHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwfSwKCSAgICB7MCwgMCwgMCwgMCwgMCwgMCwgMCwgMH0sCgkgICAgezAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9LAoJICAgIHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwfQoJfTsKICAgIHN0ZDo6Y291dCA8PCBjb250YWluX29uZV9hbmRfbWludXNfb25lKG0pIDw8IHN0ZDo6ZW5kbDsKICAgIG1bNF1bMl0gPSAxOwogICAgc3RkOjpjb3V0IDw8IGNvbnRhaW5fb25lX2FuZF9taW51c19vbmUobSkgPDwgc3RkOjplbmRsOwogICAgbVsyXVs0XSA9IC0xOwogICAgc3RkOjpjb3V0IDw8IGNvbnRhaW5fb25lX2FuZF9taW51c19vbmUobSkgPDwgc3RkOjplbmRsOwp9Cg==