Pagini recente » Cod sursa (job #2316074) | Cod sursa (job #2463676) | Atasamentele paginii Rezultate Info Oltenia 2019 Proba Individuala | Cod sursa (job #3174087) | Cod sursa (job #1765643)
#include <stdio.h>
int a[501][501][11],v[501];
int max (int max,int a,int b,int c) {
if (a>max)
max=a;
if (b>max)
max=b;
if (c>max)
max=c;
return max;
}
int main()
{
FILE *fin,*fout;
int n,m,k,x,y,i,j,l;
fin=fopen("plantatie.in","r");
fout=fopen("plantatie.out","w");
fscanf(fin,"%d%d", &n, &m);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++) {
fscanf(fin,"%d", &a[i][j][0]);
for (l=1;(1<<l)<=i && (1<<l)<=j;l++)
a[i][j][l]=max(a[i][j][l-1],a[i][j-(1<<(l-1))][l-1],a[i-(1<<(l-1))][j][l-1],a[i-(1<<(l-1))][j-(1<<(l-1))][l-1]);
}
for (i=2;i<=n;i++)
v[i]=1+v[i/2];
for (i=1;i<=m;i++) {
fscanf(fin,"%d%d%d", &x, &y, &k);
l=v[k];
j=max(a[x+(1<<l)-1][y+(1<<l)-1][l],a[x+(1<<l)-1][y+k-1][l],a[x+k-1][y+(1<<l)-1][l],a[x+k-1][y+k-1][l]);
fprintf(fout,"%d\n", j);
}
return 0;
}