Pagini recente » Cod sursa (job #1535508) | Cod sursa (job #2275651) | Cod sursa (job #441152) | Cod sursa (job #1073529) | Cod sursa (job #2055625)
#include<fstream>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int n, m, d[600][600][30], i, j, l, i2, j2, sol, k, lg[600];
int main()
{
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
f>>d[i][j][0];
for(i=2;i<=n;i++)
lg[i]=lg[i/2]+1;
for(k=1;k<=lg[n];k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
d[i][j][k]=d[i][j][k-1];
d[i][j][k]=max(d[i][j][k], d[i][j+(1<<(k-1))][k-1]);
d[i][j][k]=max(d[i][j][k], d[i+(1<<(k-1))][j][k-1]);
d[i][j][k]=max(d[i][j][k], d[i+(1<<(k-1))][j+(1<<(k-1))][k-1]);
}
while(m!=0)
{
f>>i>>j>>l;
i2=i+l-1;
j2=j+l-1;
l=lg[l];
sol=max(d[i][j][l], d[i][j2-(1<<l)+1][l]);
sol=max(sol, d[i2-(1<<l)+1][j][l]);
sol=max(sol, d[i2-(1<<l)+1][j2-(1<<l)+1][l]);
g<<sol<<"\n";
m--;
}
return 0;
}