Pagini recente » Cod sursa (job #2063706) | Cod sursa (job #136390) | Cod sursa (job #1232761) | Cod sursa (job #1803783) | Cod sursa (job #19407)
Cod sursa(job #19407)
#include <cstdio>
const int MAX_N = 256;
int N, M;
int C[MAX_N][MAX_N][MAX_N];
inline int max(int a, int b, int c, int d) {
int ret = a;
if (b > ret) {
ret = b;
}
if (c > ret) {
ret = c;
}
if (d > ret) {
ret = d;
}
return ret;
}
int main(void) {
FILE *in = fopen("plantatie.in", "r"),
*out = fopen("plantatie.out", "w");
fscanf(in, "%d %d", &N, &M);
int i, j;
for (i = 0; i < N; ++ i) {
for (j = 0; j < N; ++ j) {
fscanf(in, "%d", &C[i][j][1]);
}
}
int k;
for (k = 2; k <= N; ++ k) {
for (i = 0; i < N - k + 1; ++ i) {
for (j = 0; j < N - k + 1; ++ j) {
if (k % 2 == 1) {
C[i][j][k] = max(C[i][j][k / 2 + 1], C[i + k / 2][j][k / 2 + 1], C[i][j + k / 2][k / 2 + 1],
C[i + k / 2][j + k / 2][k / 2 + 1]);
} else {
C[i][j][k] = max(C[i][j][k / 2], C[i + k / 2][j][k / 2], C[i][j + k / 2][k / 2],
C[i + k / 2][j + k / 2][k / 2]);
}
}
}
}
int t, nc, is, js;
for (t = 0; t < M; ++ t) {
fscanf(in, "%d %d %d", &is, &js, &nc);
is --;
js --;
fprintf(out, "%d\n", C[is][js][nc]);
}
return 0;
}