Pagini recente » Cod sursa (job #2939974) | Cod sursa (job #2022477) | Cod sursa (job #2675381) | Cod sursa (job #1497830) | Cod sursa (job #2133100)
#include <iostream>
#include <fstream>
#include <cmath>
#define nmax 505
using namespace std;
ifstream f ("plantatie.in");
ofstream g ("plantatie.out");
int a[10][nmax][nmax] , n , t , m , i , j , p , q, k,x,y;
int maxim(int a,int b,int c,int d)
{
a = max(a,b);
c = max(c,d);
return max(a,c);
}
int main()
{
f >> n >> t;
for(i = 1;i <= n;i++)
for(j = 1;j <= n;j++)
f >> a[0][i][j];
m = log2(n);
k = 1;
for(q = 1;q <= m;q++)
{
for(i = 1;i <= n;i++)
for(j = 1;j <= n;j++)
a[q][i][j] = maxim(a[q - 1][i][j] , a[q - 1][i + k][j] , a[q - 1][i][j + k] , a[q - 1][i + k][j + k]);
k *= 2;
}
for(i = 1;i <= t;i++)
{
f >> x >> y >> k;
p = log2(k);
k -= pow(2,p);
g << maxim(a[p][x][y] , a[p][x + k][y] ,a[p][x][y + k],a[p][x + k][y + k])<< '\n';
}
return 0;
}