Pagini recente » Cod sursa (job #2442590) | Cod sursa (job #3182191) | Cod sursa (job #2096165) | Cod sursa (job #1418231) | Cod sursa (job #2309359)
#include<bits/stdc++.h>
#define ll long long
#define f first
#define s second
#define N 501
using namespace std;
ifstream in("plantatie.in");
ofstream out("plantatie.out");
int dp[N][N][10];
int main(){
int n,m,i,j,k,l;
in>>n>>m;
for(i=1; i<=n; ++i)
for(j=1; j<=n; ++j)
in>>dp[i][j][0];
for(k=1; (1<<k)<=n; ++k)
for(i=n-(1<<k)+1; i>=1; --i)
for(j=n-(1<<k)+1; j>=1; --j)
dp[i][j][k]=max(max(dp[i][j][k-1], dp[i+(1<<(k-1))][j][k-1]), max(dp[i][j+(1<<(k-1))][k-1], dp[i+(1<<(k-1))][j+(1<<(k-1))][k-1]));
while(m--){
in>>i>>j>>k;
l=log2(k);
out<<max(max(dp[i][j][l], dp[i+k-(1<<l)][j][l]), max(dp[i][j+k-(1<<l)][l], dp[i+k-(1<<l)][j+k-(1<<l)][l]))<<"\n";
}
return 0;
}