Pagini recente » Cod sursa (job #2124044) | Cod sursa (job #833692) | Cod sursa (job #2854597) | Cod sursa (job #1672328) | Cod sursa (job #2194524)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("plantatie.in");
ofstream out("plantatie.out");
const int N=505;
int n,m,a[N][N][20],lg[N];
int main()
{
int i,j,l,q,L;
in>>n>>m;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
in>>a[i][j][0];
lg[1]=0;
for(i=2; i<=n; i++)
lg[i]=1+lg[i/2];
for(i=1; 1<<i<=n; i++)
for(j=1; j<=n-(1<<(i-1)); j++)
for(q=1; q<=n-(1<<(i-1)); q++)
{
a[j][q][i]=max(max(a[j][q][i-1],a[j][q+(1<<(i-1))][i-1]),max(a[j+(1<<(i-1))][q][i-1],a[j+(1<<(i-1))][q+(1<<(i-1))][i-1]));
}
while(m!=0)
{
in>>i>>j>>l;
L=lg[l];
out<<max(max(a[i][j][L],a[i][j+l-(1<<L)][L]),max(a[i+l-(1<<L)][j][L],a[i+l-(1<<L)][j+l-(1<<L)][L]))<<'\n';
m--;
}
return 0;
}