Cod sursa(job #2188574)

Utilizator alexilasiAlex Ilasi alexilasi Data 27 martie 2018 11:24:16
Problema Plantatie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("plantatie.in");
ofstream fout("plantatie.out");

int n,m,i,j,k,K,nr,l,c,d;

int a[510][510][12];

int main()
{
    fin>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            fin>>a[i][j][0];
    for(k=1;1<<k<=n;k++)
    {
        K=1<<k;
        for(i=1;i<=n-K+1;i++)
            for(j=1;j<=n-K+1;j++)
                a[i][j][k]=max(a[i][j][k-1],max(a[i][j+K/2][k-1],max(a[i+K/2][j][k-1],a[i+K/2][j+K/2][k-1])));
    }
    for(i=1;i<=m;i++)
    {
        fin>>l>>c>>d;
        K=d;
        nr=0;
        while(K){nr++;K/=2;}
        nr--;
        K=1<<nr;
        fout<<max(a[l][c][nr],max(a[l+d-K][c][nr],max(a[l][c+d-K][nr],a[l+d-K][c+d-K][nr])))<<'\n';
    }
    return 0;
}