Pagini recente » Cod sursa (job #1816543) | Cod sursa (job #2127979) | Cod sursa (job #2502574) | Cod sursa (job #1243708) | Cod sursa (job #2054713)
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int n, m, i, d[20][503][503], sol, k, i2, j, j2, l;
int main()
{
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
f>>d[0][i][j];
for(k=1;(1<<k)<=n;k++)
{
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
d[k][i][j]=d[k][i][j];
d[k][i][j]=max(d[k][i][j], d[k-1][i][j+(1<<(k-1))]);
d[k][i][j]=max(d[k][i][j], d[k-1][i+(1<<(k-1))][j]);
d[k][i][j]=max(d[k][i][j], d[k-1][i+(1<<(k-1))][j+(1<<(k-1))]);
}
}
for(;m;m--)
{
f>>i>>j>>l;
i2=i+l-1;
j2=j+l-1;
k=log2(l);
d[k][i][j]=max(d[k][i][j], d[k][i][j2-(1<<k)+1]);
d[k][i][j]=max(d[k][i][j], d[k][i2-(1<<k)+1][j]);
d[k][i][j]=max(d[k][i][j], d[k][i2-(1<<k)+1][j2-(1<<k)+1]);
g<<d[k][i][j]<<"\n";
}
return 0;
}