Pagini recente » Cod sursa (job #2236546) | Politic | Cod sursa (job #2056414) | Cod sursa (job #1669866) | Cod sursa (job #1004190)
#include <fstream>
#include <iostream>
#include <deque>
using namespace std;
int max4(int i, int i0, int i1, int i2) {
if ((i >= i0) && (i >= i1) && (i >= i2)) {
return i;
}
if ((i0 >= i) && (i0 >= i1) && (i0 >= i2)) {
return i0;
}
if ((i1 >= i) && (i1 >= i0) && (i1 >= i2)) {
return i1;
}
if ((i2 >= i) && (i2 >= i1) && (i2 >= i0)) {
return i2;
}
return i;
}
int main()
{
int n = 5, m = 4, i = 0, j = 0, xx = 0, yy = 0, loga = 0, k = 0, len = 0, nr = 0;
int[300][501][501] din;
int[1000] vlog;
ifstream in("plantatie.in");
ofstream out("plantatie.out");
int sizemin=0;
int sizemax=0;
in>>n>>m;
for (i = 1; i <= n; ++i) {
for (j = 1; j <= n; ++j) {
in>>din[0][i][j];
}
}
for (k = 1; (1 << k) <= n; k++) {
for (i = 1; i <= n - (1 << k) + 1; i++) {
for (j = 1; j <= n - (1 << k) + 1; j++) {
din[k][i][j] = max4(
din[k - 1][i][j],
din[k - 1][i][j + (1 << (k - 1))],
din[k - 1][i + (1 << (k - 1))][j],
din[k - 1][i + (1 << (k - 1))][j + (1 << (k - 1))]);
}
}
}
vlog[1] = 0;
for (i = 2; i <= n ; i++) {
vlog[i] = vlog[i >> 1] + 1;
}
for (i = 1; i <= m; i++) {
in>>xx>>yy>>len;
loga = vlog[len];
nr = len - (1 << loga);
int minimum = max4(din[loga][xx ][yy], din[loga][xx + nr][yy], din[loga][xx][yy + nr], din[loga][xx + nr][yy + nr]);
out<<minimum<<"\n";
}
in.close();
out.close();
return 0;
}