Pagini recente » Cod sursa (job #2513974) | Cod sursa (job #242196) | Cod sursa (job #549954) | Cod sursa (job #1359574) | Cod sursa (job #929137)
Cod sursa(job #929137)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("plantatie.in"); ofstream fout("plantatie.out");
int M[502][502][10];
int Max4(int a, int b, int c, int d)
{
return max(a, max(b, max(c, d)));
}
int main()
{
int n, m, i, j, k;
fin >> n >> m;
for(i = 1; i <= n; ++i)
for(j = 1; j <= n; ++j)
fin >> M[i][j][0];
for (k = 1; (1<<k) <= n; ++k)
for (i = 1; (1<<k) + i <= n + 1; ++i)
for (j = 1; (1<<k) + j <= n + 1; ++j)
M[i][j][k] = Max4(M[i][j][k - 1],
M[i + (1<<(k - 1))][j][k - 1],
M[i][j + (1<<(k - 1))][k - 1],
M[i + (1<<(k - 1))][j + (1<<(k - 1))][k - 1]);
while (m--)
{
int p;
fin >> i >> j >> k;
p = 0;
while ((1<<p) <= k) p++;
p--;
fout << Max4(M[i][j][p],
M[i + k - (1<<p)][j][p],
M[i][j + k - (1<<p)][p],
M[i + k - (1<<p)][j + k - (1<<p)][p]) << "\n";
}
fin.close(); fout.close();
return 0;
}