Pagini recente » Cod sursa (job #1612967) | Cod sursa (job #1784645) | Cod sursa (job #1549541) | Cod sursa (job #1916749) | Cod sursa (job #2717549)
#include <bits/stdc++.h>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int n,q;
int rmq[501][501][10];
int max4(int a, int b, int c, int d)
{
return max(max(a,b),max(c,d));
}
int mxi;
int ans;
int main()
{
f>>n>>q;
int i,j;
for(i = 0; i < n; ++i)
for(j = 0; j < n; ++j)
f>>rmq[i][j][0];
int len_max = log2(n);
int len;
for(len = 1; len <= len_max; len ++)
{
int delta_check = (1<<len);
for(i = 0; i + delta_check - 1 < n; ++i)
for(j = 0; j + delta_check - 1 < n; ++j)
{
int p1,p2,p3,p4;
int delta = 1<<(len-1);
p1 = rmq[i][j][len - 1];
p2 = rmq[i + delta][j][len - 1];
p3 = rmq[i][j + delta][len - 1];
p4 = rmq[i + delta][j + delta][len - 1];
rmq[i][j][len] = max4(p1,p2,p3,p4);
}
}
while(q--)
{
int xs,ys,dim;
f>>xs>>ys>>dim;
--xs;
--ys;
int len = log2(dim);
int len_total = (1<<len);
int delta = 1 - len_total;
int xf = xs + dim - 1;
int yf = ys + dim - 1;
int p1,p2,p3,p4;
p1 = rmq[xs][ys][len];
p2 = rmq[xs][yf + delta][len];
p3 = rmq[xf + delta][ys][len];
p4 = rmq[xf + delta][yf + delta][len];
g<<max4(p1,p2,p3,p4)<<'\n';
}
return 0;
}