Pagini recente » Cod sursa (job #212901) | Cod sursa (job #1851796) | Cod sursa (job #739456) | Cod sursa (job #558855) | Cod sursa (job #2481094)
#include <fstream>
using namespace std;
ifstream in("plantatie.in");
ofstream out("plantatie.out");
int t[510][510],r[10][510][510],n,m,p,q,k,log[510];
int main()
{
in>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
in>>t[i][j];
log[1]=0;
for(int i=1;i<=n;i++)
log[i]=1+log[i/2];
for(int l=1;l<=log[n];l++)
for(int i=1;i<=n-(1<<l);i++)
for(int j=1;j<=n-(1<<l);i++){
int R1=max(r[l-1][i][j],r[l-1][i][j+(1<<l-1)]);
int R2=max(r[l-1][i+(1<<l-1)][j],r[l-1][i+(1<<l-1)][j+(1<<l-1)]);
r[l][i][j]=max(R1,R2);
}
for(int i=1;i<=m;i++){
in>>p>>q>>k;
p--;
q--;
int p2=p+k-1;
int q2=q+k-1;
int l=log[k];
int R3=max(r[l][p][q],r[l][p][q2-(1<<l)+1]);
int R4=max(r[l][p2-(1<<l)+1][q],r[l][p2-(1<<l)+1][q2-(1<<l)+1]);
out<<max(R3,R4)<<"\n";
}
return 0;
}