Pagini recente » Cod sursa (job #964117) | Cod sursa (job #1220958) | Cod sursa (job #2469156) | Cod sursa (job #2152300) | Cod sursa (job #3289403)
#include <bits/stdc++.h>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int n,q,dp[502][502][10];
int main()
{
f>>n>>q;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
f>>dp[i][j][0];
for(int l=1; l<=10; l++)
for(int i=1; i<=n-(1<<l)+1; i++)
for(int j=1; j<=n-(1<<l)+1; j++)
{
int ii=i+(1<<(l-1));
int jj=j+(1<<(l-1));
dp[i][j][l]=max({dp[i][j][l-1],
dp[ii][j][l-1],
dp[i][jj][l-1],
dp[ii][jj][l-1]});
}
for(int t=1; t<=q; t++)
{
int i,j,ii,jj,k;
f>>i>>j>>k;
ii=i+k-1, jj=j+k-1;
int l=log2(k);
g<<max({dp[i][j][l],
dp[ii-(1<<l)+1][j][l],
dp[i][jj-(1<<l)+1][l],
dp[ii-(1<<l)+1][jj-(1<<l)+1][l]})<<'\n';
}
return 0;
}