Pagini recente » Cod sursa (job #1743217) | Cod sursa (job #1391064) | Cod sursa (job #2456758) | Cod sursa (job #879360) | Cod sursa (job #3292362)
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int R[10][501][501],E[501],M[501][501],i,j,p,m,x,y,z,n;
int main()
{
fin>>n>>m;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
fin>>M[i][j];
E[1]=0;
for(i=2; i<=n; i++)
{
E[i]=1+E[i/2];
}
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
{
//cout<<M[i][j];
R[0][i][j]=M[i][j];
}
for(p=1; p<=E[n]; p++)
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
{
int max1=max(R[p-1][i+(1<<(p-1))][j],R[p-1][i+(1<<(p-1))][j+(1<<(p-1))]);
int max2=max(R[p-1][i][j],R[p-1][i][j+(1<<(p-1))]);
R[p][i][j]=max(max1,max2);
}
for(i=1; i<=m; i++)
{
fin>>x>>y>>z;
int max1=max(R[E[z]][x][y],R[E[z]][x][y+z-(1<<E[z])]);
int max2=max(R[E[z]][x+z-(1<<E[z])][y],R[E[z]][x+z-(1<<E[z])][y+z-(1<<E[z])]);
fout<<max(max1,max2)<<"\n";
}
fin.close();
fout.close();
return 0;
}