Pagini recente » Cod sursa (job #2212889) | Cod sursa (job #2396994) | Cod sursa (job #1365210) | Cod sursa (job #2861154) | Cod sursa (job #416372)
Cod sursa(job #416372)
#include <fstream>
using namespace std;
#define NMAX 502
int M[NMAX][NMAX][10];
int max4(int a, int b, int c, int d)
{
a=max(a,b); a=max(a,c);
return max(a,d);
}
int main()
{
ifstream fin("plantatie.in"); ofstream fout("plantatie.out");
int n,m,i,j,k;
fin>>n>>m;
for (i=1;i<=n;++i)
for (j=1;j<=n;++j)
fin>>M[i][j][0];
for (k=1; (1<<k)<=n; ++k)
for (i=1; ((1<<k)+i<=n+1);++i)
for (j=1; ((1<<k)+j<=n+1);++j)
M[i][j][k]=max4(M[i][j][k-1],M[i+(1<<(k-1))][j][k-1],M[i][j+(1<<(k-1))][k-1],M[i+(1<<(k-1))][j+(1<<(k-1))][k-1]);
while (m--)
{ int p;
fin>>i>>j>>k;
p=0;
while ((1<<p)<=k) ++p;
--p;
fout<<max4(M[i][j][p],M[i+k-(1<<p)][j][p],M[i][j+k-(1<<p)][p],M[i+k-(1<<p)][j+k-(1<<p)][p])<<"\n";
}
fin.close(); fout.close();
return 0;
}