Cod sursa(job #276734)

Utilizator zbarniZajzon Barna zbarni Data 11 martie 2009 12:25:27
Problema Plantatie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream.h>
#define lx 10
#define nx 505
#define max(x,y) ((x)>(y)?(x):(y))
long C[nx][nx][lx];
int n,m;

int main()
 {
  ifstream be ("plantatie.in");
  ofstream ki ("plantatie.out");
  int n,m;
  long x,y,z,i,j,k,l;
  be>>n>>m;
  for (i=1;i<=n;++i)
   for (j=1;j<=n;++j)
     be>>C[i][j][0];
  for (k=1;(1<<k)<=n;++k)
   for (i=1;i<=n-(1<<k)+1;++i)
    for (j=1;j<=n-(1<<k)+1;++j)
       {
	l=1<<(k-1);
	C[i][j][k]=max(max(C[i][j][k-1],C[i][j+l][k-1]),max(C[i+l][j][k-1],C[i+l][j+l][k-1]));
       }
  for (;m;--m)
   {
    be>>x>>y>>z;
    for (i=1;(1<<i)<=z;++i);
    --i;
    l=1<<i;
    ki<<max(max(C[x][y][i],C[x][y+z-l][i]),max(C[x+z-l][y][i],C[x+z-l][y+z-l][i]))<<'\n';
   }
  be.close();
  ki.close();
  return 0;
 }