start = clock ( ) ;
ans = 0 ;
for ( int i = 0 ; i < 100 * 1000 * 1000 ; ++ i) {
for ( int x = 0 ; x < 2 ; ++ x) {
if ( ( x + basex >= 0 ) && ( x + basex < size) ) {
for ( int y = 0 ; y < 2 ; ++ y) {
if ( ( y + basey >= 0 ) && ( y + basey < size) ) {
for ( int z = 0 ; z < 2 ; ++ z) {
if ( ( z + basez >= 0 ) && ( z + basez < size) ) {
ans + = v[ x + basex] [ y + basey] [ z + basez] ;
ans * = v[ x + basex] [ y + basey] [ z + basez] ;
ans ^ = v[ x + basex] [ y + basey] [ z + basez] ;
}
}
}
}
}
}
}
cout << ( clock ( ) - start) / CLOCKS_PER_SEC << endl;
cout << ans << endl;
start = clock ( ) ;
ans = 0 ;
const array< array< int , 3 > , 8 > delta = {
0 , 0 , 0 ,
0 , 0 , 1 ,
0 , 1 , 0 ,
0 , 1 , 1 ,
1 , 0 , 0 ,
1 , 0 , 1 ,
1 , 1 , 0 ,
1 , 1 , 1
} ;
for ( int i = 0 ; i < 100 * 1000 * 1000 ; ++ i) {
for ( auto & t : delta) {
auto & x = t[ 0 ] ;
auto & y = t[ 1 ] ;
auto & z = t[ 2 ] ;
if ( ( x + basex < 0 ) || ( x + basex >= size) ||
( y + basey < 0 ) || ( y + basey >= size) ||
( z + basez < 0 ) || ( z + basez >= size) ) {
continue ;
}
ans + = v[ x + basex] [ y + basey] [ z + basez] ;
ans * = v[ x + basex] [ y + basey] [ z + basez] ;
ans ^ = v[ x + basex] [ y + basey] [ z + basez] ;
}
}
cout << ( clock ( ) - start) / CLOCKS_PER_SEC << endl;
cout << ans << endl;
ICAgIHN0YXJ0ID0gY2xvY2soKTsKICAgIGFucyA9IDA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMCAqIDEwMDAgKiAxMDAwOyArK2kpIHsKICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IDI7ICsreCkgewogICAgICAgICAgICBpZiAoKHggKyBiYXNleCA+PSAwKSAmJiAoeCArIGJhc2V4IDwgc2l6ZSkpIHsKICAgICAgICAgICAgICAgIGZvciAoaW50IHkgPSAwOyB5IDwgMjsgKyt5KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCh5ICsgYmFzZXkgPj0gMCkgJiYgKHkgKyBiYXNleSA8IHNpemUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IHogPSAwOyB6IDwgMjsgKyt6KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHogKyBiYXNleiA+PSAwKSAmJiAoeiArIGJhc2V6IDwgc2l6ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnMgKz0gdlt4ICsgYmFzZXhdW3kgKyBiYXNleV1beiArIGJhc2V6XTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnMgKj0gdlt4ICsgYmFzZXhdW3kgKyBiYXNleV1beiArIGJhc2V6XTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnMgXj0gdlt4ICsgYmFzZXhdW3kgKyBiYXNleV1beiArIGJhc2V6XTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgKGNsb2NrKCkgLSBzdGFydCkgLyBDTE9DS1NfUEVSX1NFQyA8PCBlbmRsOwogICAgY291dCA8PCBhbnMgPDwgZW5kbDsKICAgIHN0YXJ0ID0gY2xvY2soKTsKICAgIGFucyA9IDA7CiAgICBjb25zdCBhcnJheTxhcnJheTxpbnQsIDM+LCA4PiBkZWx0YSA9IHsKICAgICAgICAwLCAwLCAwLAogICAgICAgIDAsIDAsIDEsCiAgICAgICAgMCwgMSwgMCwKICAgICAgICAwLCAxLCAxLAogICAgICAgIDEsIDAsIDAsCiAgICAgICAgMSwgMCwgMSwKICAgICAgICAxLCAxLCAwLAogICAgICAgIDEsIDEsIDEKICAgIH07CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMCAqIDEwMDAgKiAxMDAwOyArK2kpIHsKICAgICAgICBmb3IgKGF1dG8mIHQgOiBkZWx0YSkgewogICAgICAgICAgICBhdXRvJiB4ID0gdFswXTsKICAgICAgICAgICAgYXV0byYgeSA9IHRbMV07CiAgICAgICAgICAgIGF1dG8mIHogPSB0WzJdOwogICAgICAgICAgICBpZiAoKHggKyBiYXNleCA8IDApIHx8ICh4ICsgYmFzZXggPj0gc2l6ZSkgfHwKICAgICAgICAgICAgICAgICAgICAoeSArIGJhc2V5IDwgMCkgfHwgKHkgKyBiYXNleSA+PSBzaXplKSB8fAogICAgICAgICAgICAgICAgICAgICh6ICsgYmFzZXogPCAwKSB8fCAoeiArIGJhc2V6ID49IHNpemUpKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBhbnMgKz0gdlt4ICsgYmFzZXhdW3kgKyBiYXNleV1beiArIGJhc2V6XTsKICAgICAgICAgICAgYW5zICo9IHZbeCArIGJhc2V4XVt5ICsgYmFzZXldW3ogKyBiYXNlel07CiAgICAgICAgICAgIGFucyBePSB2W3ggKyBiYXNleF1beSArIGJhc2V5XVt6ICsgYmFzZXpdOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgKGNsb2NrKCkgLSBzdGFydCkgLyBDTE9DS1NfUEVSX1NFQyA8PCBlbmRsOwogICAgY291dCA8PCBhbnMgPDwgZW5kbDsK