#include <iostream>
using namespace std;
short** newGrid(const short width, const short height)
{
short** g = NULL;
g = new short*[width];
short temp = 0;
for(short i = 0; i < width; i++)
{
g[i] = new short[height];
}
for(short i = 0; i < width; i++)
{
for(short k = 0; k < height; k++)
{
cin >> temp;
g[i][k] = temp;
}
}
return g;
}
void solveGrid(const short gridNum,
short* g[],
const short width,
const short height)
{
const short right = 1;
const short farRight = 2;
const short under = 1;
const short farUnder = 2;
short X_coordinate = 0;
short Y_coordinate = 0;
long tempTotal = 0;
long total = 4294967295;
for(short i = 0; i < width - 2; i++)
{
for(short k = 0; k < height - 2; k++)
{
cout << "(" << i << "," << " " << k << ")";
tempTotal =
g[i][k] +
g[i][k + right] +
g[i][k + farRight] +
g[i + under][k] +
g[i + farUnder][k] +
g[i + under][k + right] +
g[i + under][k + farRight] +
g[i + farUnder][k + right] +
g[i + farUnder][k + farRight];
cout << " " << tempTotal << endl;
if(tempTotal < total)
{
total = tempTotal;
X_coordinate = i;
Y_coordinate = k;
}
}
}
cout << "#" << gridNum << ":" << " " << "(" << X_coordinate <<
"," << " " << Y_coordinate << ")" << " " << total
<< endl;
cout << endl;
return;
}
void deleteGrid(short* g[], const short width)
{
for(short i = 0; i < width; i++)
{
delete [] g[i];
}
delete [] g;
return;
}
int main()
{
short** g = NULL;
short numGrids = 0, width = 0, height = 0;
cin >> numGrids;
for(short gridCount = 0; gridCount < numGrids; gridCount++) //main loop for number of grids
{
cin >> width;
cin >> height;
g = newGrid(width, height);
solveGrid(gridCount, g, width, height);
deleteGrid(g, width);
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnNob3J0KiogbmV3R3JpZChjb25zdCBzaG9ydCB3aWR0aCwgY29uc3Qgc2hvcnQgaGVpZ2h0KQp7CiAgc2hvcnQqKiBnID0gTlVMTDsKICBnID0gbmV3IHNob3J0Klt3aWR0aF07CgogIHNob3J0IHRlbXAgPSAwOwoKICBmb3Ioc2hvcnQgaSA9IDA7IGkgPCB3aWR0aDsgaSsrKQogICAgewogICAgICBnW2ldID0gbmV3IHNob3J0W2hlaWdodF07CiAgICB9CgogIGZvcihzaG9ydCBpID0gMDsgaSA8IHdpZHRoOyBpKyspCiAgICB7CiAgICAgIGZvcihzaG9ydCBrID0gMDsgayA8IGhlaWdodDsgaysrKQogICAgICAgIHsKICAgICAgICAgIGNpbiA+PiB0ZW1wOwogICAgICAgICAgZ1tpXVtrXSA9IHRlbXA7CiAgICAgICAgfQogICAgfQoKICByZXR1cm4gZzsKCn0KCnZvaWQgc29sdmVHcmlkKGNvbnN0IHNob3J0IGdyaWROdW0sCiAgICAgICAgICAgICAgIHNob3J0KiBnW10sCiAgICAgICAgICAgICAgIGNvbnN0IHNob3J0IHdpZHRoLAogICAgICAgICAgICAgICBjb25zdCBzaG9ydCBoZWlnaHQpCnsKICBjb25zdCBzaG9ydCByaWdodCA9IDE7CiAgY29uc3Qgc2hvcnQgZmFyUmlnaHQgPSAyOwogIGNvbnN0IHNob3J0IHVuZGVyID0gMTsKICBjb25zdCBzaG9ydCBmYXJVbmRlciA9IDI7CgogIHNob3J0IFhfY29vcmRpbmF0ZSA9IDA7CiAgc2hvcnQgWV9jb29yZGluYXRlID0gMDsKCiAgbG9uZyB0ZW1wVG90YWwgPSAwOwogIGxvbmcgdG90YWwgPSA0Mjk0OTY3Mjk1OwoKICBmb3Ioc2hvcnQgaSA9IDA7IGkgPCB3aWR0aCAtIDI7IGkrKykKICAgIHsKICAgICAgZm9yKHNob3J0IGsgPSAwOyBrIDwgaGVpZ2h0IC0gMjsgaysrKQogICAgICAgIHsKCiAgICAgICAgICBjb3V0IDw8ICIoIiA8PCBpIDw8ICIsIiA8PCAiICIgPDwgayA8PCAiKSI7CgogICAgICAgICAgdGVtcFRvdGFsID0KICAgICAgICAgIGdbaV1ba10gKwoKICAgICAgICAgIGdbaV1bayArIHJpZ2h0XSArCgogICAgICAgICAgZ1tpXVtrICsgZmFyUmlnaHRdICsKCiAgICAgICAgICBnW2kgKyB1bmRlcl1ba10gKwoKICAgICAgICAgIGdbaSArIGZhclVuZGVyXVtrXSArCgogICAgICAgICAgZ1tpICsgdW5kZXJdW2sgKyByaWdodF0gKwoKICAgICAgICAgIGdbaSArIHVuZGVyXVtrICsgZmFyUmlnaHRdICsKCiAgICAgICAgICBnW2kgKyBmYXJVbmRlcl1bayArIHJpZ2h0XSArCgogICAgICAgICAgZ1tpICsgZmFyVW5kZXJdW2sgKyBmYXJSaWdodF07CgogICAgICAgICAgY291dCA8PCAiICIgPDwgdGVtcFRvdGFsIDw8IGVuZGw7CgogICAgICAgICAgaWYodGVtcFRvdGFsIDwgdG90YWwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0b3RhbCA9IHRlbXBUb3RhbDsKICAgICAgICAgICAgICBYX2Nvb3JkaW5hdGUgPSBpOwogICAgICAgICAgICAgIFlfY29vcmRpbmF0ZSA9IGs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogIGNvdXQgPDwgIiMiIDw8IGdyaWROdW0gPDwgIjoiIDw8ICIgIiA8PCAiKCIgPDwgWF9jb29yZGluYXRlIDw8CiAgICAgICAgICAiLCIgPDwgIiAiIDw8IFlfY29vcmRpbmF0ZSA8PCAiKSIgPDwgIiAiIDw8IHRvdGFsCiAgICAgICAgICA8PCBlbmRsOwoKICBjb3V0IDw8IGVuZGw7CgogIHJldHVybjsKCn0KCnZvaWQgZGVsZXRlR3JpZChzaG9ydCogZ1tdLCBjb25zdCBzaG9ydCB3aWR0aCkKewogIGZvcihzaG9ydCBpID0gMDsgaSA8IHdpZHRoOyBpKyspCiAgICB7CiAgICAgIGRlbGV0ZSBbXSBnW2ldOwogICAgfQoKICBkZWxldGUgW10gZzsKCiAgcmV0dXJuOwp9CgppbnQgbWFpbigpCnsKICBzaG9ydCoqIGcgPSBOVUxMOwogIHNob3J0IG51bUdyaWRzID0gMCwgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwogIGNpbiA+PiBudW1HcmlkczsKCiAgZm9yKHNob3J0IGdyaWRDb3VudCA9IDA7IGdyaWRDb3VudCA8IG51bUdyaWRzOyBncmlkQ291bnQrKykgLy9tYWluIGxvb3AgZm9yIG51bWJlciBvZiBncmlkcwogICAgewogICAgICBjaW4gPj4gd2lkdGg7CiAgICAgIGNpbiA+PiBoZWlnaHQ7CgogICAgICBnID0gbmV3R3JpZCh3aWR0aCwgaGVpZ2h0KTsKCiAgICAgIHNvbHZlR3JpZChncmlkQ291bnQsIGcsIHdpZHRoLCBoZWlnaHQpOwoKICAgICAgZGVsZXRlR3JpZChnLCB3aWR0aCk7CiAgICB9CgogIHJldHVybiAwOwp9
Mwo0IDQKMSAwIDAgMQowIDEgMCAxCjAgMiAxIDMKMCAzIDEgMQo2IDMKNCAxIDIgMCAwIDYKNiA3IDUgOSA4IDMKMyA0IDYgMiA4IDEKNSA1IAoxIDAgMCAzIDEKMCAxIDAgMSAxCjAgMiAxIDQgMwowIDAgMCAxIDQKMCAwIDAgMSAz
3
4 4
1 0 0 1
0 1 0 1
0 2 1 3
0 3 1 1
6 3
4 1 2 0 0 6
6 7 5 9 8 3
3 4 6 2 8 1
5 5
1 0 0 3 1
0 1 0 1 1
0 2 1 4 3
0 0 0 1 4
0 0 0 1 3
(0, 0) 5
(0, 1) 9
(1, 0) 8
(1, 1) 13
#0: (0, 0) -1
(0, 0) 31
(1, 0) 44
(2, 0) 51
(3, 0) 44
#1: (0, 0) -1
(0, 0) 5
(0, 1) 12
(0, 2) 14
(1, 0) 4
(1, 1) 10
(1, 2) 15
(2, 0) 3
(2, 1) 9
(2, 2) 17
#2: (0, 0) -1