Pagini recente » Cod sursa (job #1428577) | Cod sursa (job #948821) | Cod sursa (job #354326) | Cod sursa (job #148233) | Cod sursa (job #2545263)
#include <fstream>
#define f in
#define g out
using namespace std;
ifstream in ( "plantatie.in" );
ofstream out( "plantatie.out" );
int p2[510], d[10][510][510];
int n, q, i, j, e, i1, j1, x, k;
int main() {
for ( i=2; i <= 500; i++ )
p2[i] = 1+p2[i/2];
f>>n>>q;
for ( i=1; i <= n; i++ )
for ( j=1; j <= n; j++ )
f>>d[0][i][j];
for ( e=1; (1<<e) <= n; e++ )
for ( i=1; i <= n; i++ )
for ( j=1; j <= n; j++ ){
i1 = min ( n, i+(1<<(e-1)) );
j1 = min ( n, j+(1<<(e-1)) );
d[e][i][j] = max ( d[e-1][i][j], max ( d[e-1][i][j1], max ( d[e-1][i1][j], d[e-1][i1][j1]) ) );
}
for ( ; q--; ){
f>>i>>j>>k;
i1 = i+k-(1<<p2[k]);
j1 = j+k-(1<<p2[k]);
g<<max ( d[p2[k]][i][j], max ( d[p2[k]][i][j1], max ( d[p2[k]][i1][j], d[p2[k]][i1][j1] ) ) )<<"\n";
}
return 0;
}