Pagini recente » Cod sursa (job #3287268) | Cod sursa (job #261224) | Cod sursa (job #3174320) | Cod sursa (job #964928) | Cod sursa (job #2918250)
#include <bits/stdc++.h>
#define nl '\n'
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
const int nax = 501, lgmax = 9;
int st[lgmax][nax][nax], n, q, lg[nax];
int max4(int a, int b, int c, int d)
{
return max(a, max(b, max(c, d)));
}
int query(int x, int y, int k)
{
int p = lg[k];
return max4(st[p][x][y],
st[p][x+k-(1<<p)][y],
st[p][x][y+k-(1<<p)],
st[p][x+k-(1<<p)][y+k-(1<<p)]);
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
lg[1] = 0;
for (int i = 2; i < nax; i++)
lg[i] = lg[i/2]+1;
fin >> n >> q;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
fin >> st[0][i][j];
}
}
for (int k = 1; k <= lg[n]; k++)
{
for (int i = 1; i <= n-(1<<k)+1; i++)
{
for (int j = 1; j <= n-(1<<k)+1; j++)
{
st[k][i][j] = max4(st[k-1][i][j],
st[k-1][i+(1<<(k-1))][j],
st[k-1][i][j+(1<<(k-1))],
st[k-1][i+(1<<(k-1))][j+(1<<(k-1))]);
}
}
}
for (int i = 1; i <= q; i++)
{
int x, y, k;
fin >> x >> y >> k;
fout << query(x, y, k) << nl;
}
return 0;
}
/**
so anxious, my thoughts
your lips were soft like winter
in your passion, I was lost
**/