Pagini recente » Cod sursa (job #1414049) | Cod sursa (job #2797846) | Cod sursa (job #2292340) | Profil Mariah_dee | Cod sursa (job #2287147)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("plantatie.in");
ofstream fout ("plantatie.out");
const int N = 502, L = 9;
int r[L][N][N], log[N];
int main ()
{
int n, m;
fin >> n >> m;
for ( int i = 1; i <= n; i++ )
{
for ( int j = 1; j <= n; j++ )
{
fin >> r[0][i][j];
}
}
for ( int i = 2; i <= n; i++ )
{
log[i] = log[i/2] + 1;
}
for ( int k = 1; k <= log[n]; k++ )
{
for ( int i = 1; i <= n - (1 << k) + 1; i++ )
{
for ( int j = 1; j <= n - (1 << k) + 1; j++ )
{
int a = max ( r[k-1][i + (1 << (k - 1))][j + (1 << ( k - 1))], r[k-1][ i + (1 << (k - 1))][j]);
int b = max ( r[k-1][i][j + (1 << (k-1) )], r[k-1][i][j]);
r[k][i][j] = max ( a, b);
}
}
}
for ( int q = 1; q <= m; q++ )
{
int i, j, k;
fin >> i >> j >> k;
int l = log[k-1];
int a = max ( r[l][i][j], r[l][i + k - (1 << l)][j]);
int b = max ( r[l][i + k - (1 << l)][j + k - (1 << l)], r[l][i][j + k - (1 << l)]);
int rez = max ( a, b);
fout << rez << "\n";
}
return 0;
}