Cod sursa(job #3161700)

Utilizator Cazacu2006RazvanRazvan Cazacu Cazacu2006Razvan Data 27 octombrie 2023 19:36:13
Problema Plantatie Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>

using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int r[11][1501][1501],n,m,x,y,z,e[1001];
int main()
{
    fin>>n>>m;

    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
            fin>>r[0][i][j];
    }
    for(int p=1;(1<<p)<=n;p++){
     int nx=n-(1<<p)+1;
    for(int i=1;i<=nx;i++)
    {
        for(int j=1;j<=nx;j++)
        {
            int l=i+(1<<(p-1));
            int c=j+(1<<(p-1));
            r[p][i][j]=r[p-1][i][j];
            r[p][i][j]=max(r[p][i][j],r[p-1][l][j]);
            r[p][i][j]=max(r[p][i][j],r[p-1][i][c]);
            r[p][i][j]=max(r[p][i][j],r[p-1][l][c]);

        }
    }
    }
    e[1]=0;
 for(int i=2;i<=n;i++)
    e[i]=e[i/2]+1;
    for(int i=1;i<=m;i++)
    {
        fin>>x>>y>>z;
       int p=e[z];
        int l=x+z;
        int c=y+z;
        int len=(1<<p);

        fout<<max(r[p][x][y],max(r[p][l-len][y],max(r[p][i][c-len],r[p][l-len][c-len])))<<"\n";
    }


    return 0;
}