Cod sursa(job #2682731)

Utilizator monica_LMonica monica_L Data 9 decembrie 2020 14:03:21
Problema Plantatie Scor 0
Compilator cpp-32 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <stdio.h>
#include <math.h>
 
int i,j,k,n,m,l,a[757][757][9],p,mx;
 
int main()
{
    freopen("plantatie.in","r",stdin);
    freopen("plantatie.out","w",stdout);
    scanf("%d %d",&n,&m);
    for (i=1;i<=n;++i)
    	for (j=1;j<=n;++j)
        	scanf("%d ",&a[i][j][0]);
   /* p=0;
    while ((1<<p) <= n) p++; */
    for (k=1;(1<<k)<=n;++k)
      for (i=1;i<=n;++i)
        for (j=1;j<=n;++j)
            {
              a[i][j][k]=max(a[i][j][k-1],a[i][j+(1<<(k-1))][k-1]);
              a[i][j][k]=max(a[i][j][k],a[i+(1<<(k-1))][j+(1<<(k-1))][k-1]);
              a[i][j][k]=max(a[i][j][k],a[i+(1<<(k-1))][j][k-1]);
            }
 
    for (i=1;i<=m;++i)
    {
	scanf("%d %d %d",&i,&j,&k);
       /* p=0;
        while ((1<<p) <= k) p++;
        --p; */
	p=log2(k)
        mx=max(a[i][j][p],a[i][j+k-(1<<p)][p]);
        mx=max(max,a[i+k-(1<<p)][j][p]);
        mx=max(max,a[i+k-(1<<p)][j+k-(1<<p)][p]);
        printf("%d\n",mx);
    }
    
    return 0;
}