#include <iostream>
using namespace std;
int main()
{
int m, n;
cout << "Give M and N - ";
cin >> m >> n;
int a[m][n];
for ( int i = 0; i < m; i++ )
{
for ( int j = 0; j < n; j++ )
{
cin >> a[i][j];
}
}
int smax = -1, suma = -1, x = -1, y = -1;
for ( int i = 0; i < m; i++ )
{
for ( int j = 0; j < n; j++ )
{
suma = 0;
if ( i + 1 >= m || j + 1 >= n )
{
// No 2x2 matrix exists for this i and j.
continue;
}
for ( int k = i; k < i + 2; k++ )
{
for ( int l = j; l < j + 2; l++ )
{
suma = suma + a[k][l];
}
}
if ( suma > smax )
{
smax = suma;
x = i, y = j;
}
}
}
cout << endl << x << " " << y << " " << smax << endl;
if ( x == -1 || y == -1 )
{
// No 2x2 matrix found!
cout << "Invalid input!" << endl;
return 0;
}
for ( int i = x; i < x + 2; i++ )
{
for ( int j = y; j < y + 2; j++ )
{
cout << a[i][j] << " ";
}
cout << endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgppbnQgbWFpbigpCnsKICAgIGludCBtLCBuOwoKICAgIGNvdXQgPDwgIkdpdmUgTSBhbmQgTiAtICI7CiAgICBjaW4gPj4gbSA+PiBuOwoKICAgIGludCBhW21dW25dOwoKICAgIGZvciAoIGludCBpID0gMDsgaSA8IG07IGkrKyApCiAgICB7CiAgICAgICAgZm9yICggaW50IGogPSAwOyBqIDwgbjsgaisrICkKICAgICAgICB7CiAgICAgICAgICAgIGNpbiA+PiBhW2ldW2pdOwogICAgICAgIH0KICAgIH0KCgogICAgaW50IHNtYXggPSAtMSwgc3VtYSA9IC0xLCB4ID0gLTEsIHkgPSAtMTsKCiAgICBmb3IgKCBpbnQgaSA9IDA7IGkgPCBtOyBpKysgKQogICAgewogICAgICAgIGZvciAoIGludCBqID0gMDsgaiA8IG47IGorKyApCiAgICAgICAgewogICAgICAgICAgICBzdW1hID0gMDsKICAgICAgICAgICAgaWYgKCBpICsgMSA+PSBtIHx8IGogKyAxID49IG4gKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvLyBObyAyeDIgbWF0cml4IGV4aXN0cyBmb3IgdGhpcyBpIGFuZCBqLgogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZvciAoIGludCBrID0gaTsgayA8IGkgKyAyOyBrKysgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3IgKCBpbnQgbCA9IGo7IGwgPCBqICsgMjsgbCsrICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzdW1hID0gc3VtYSArIGFba11bbF07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggc3VtYSA+IHNtYXggKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzbWF4ID0gc3VtYTsKICAgICAgICAgICAgICAgIHggPSBpLCB5ID0gajsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IGVuZGwgPDwgeCA8PCAiICIgPDwgeSA8PCAiICIgIDw8IHNtYXggPDwgZW5kbDsKCiAgICBpZiAoIHggPT0gLTEgfHwgeSA9PSAtMSApCiAgICB7CiAgICAgICAgLy8gTm8gMngyIG1hdHJpeCBmb3VuZCEKICAgICAgICBjb3V0IDw8ICJJbnZhbGlkIGlucHV0ISIgPDwgZW5kbDsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBmb3IgKCBpbnQgaSA9IHg7IGkgPCB4ICsgMjsgaSsrICkKICAgIHsKICAgICAgICBmb3IgKCBpbnQgaiA9IHk7IGogPCB5ICsgMjsgaisrICkKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgYVtpXVtqXSA8PCAiICI7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgZW5kbDsKICAgIH0KCn0=