Pagini recente » Cod sursa (job #102870) | Cod sursa (job #3036844) | Cod sursa (job #91996) | Cod sursa (job #2355504) | Cod sursa (job #3326906)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int rmq[10][501][501], n, m, lg[501];
int main()
{
fin>>n>>m;
for(int i = 1; i <= n; ++i)
{
for(int j = 1; j <= n; ++j)
fin>>rmq[0][i][j];
}
for(int p = 1; (1<<p) <= n; ++p)
{
for(int i = 1; i + (1<<p) - 1 <= n; ++i)
{
for(int j = 1; j + (1<<p) - 1 <= n; ++j)
{
int l = 1<<(p-1);
rmq[p][i][j] = max({rmq[p-1][i][j], rmq[p-1][i+l][j], rmq[p-1][i][j+l], rmq[p-1][i+l][j+l]});
}
}
}
for(int i = 2; i <= n; ++i)
lg[i] = lg[i/2] + 1;
while(m--)
{
int i, j, k;
fin>>i>>j>>k;
int p = lg[k], l = (1<<p);
fout<<max({rmq[p][i][j], rmq[p][i+k-l][j], rmq[p][i][j+k-l], rmq[p][i+k-l][j+k-l]})<<"\n";
}
return 0;
}