Cod sursa(job #3254231)

Utilizator contandrei3Andrei Mihai contandrei3 Data 6 noiembrie 2024 17:38:15
Problema Plantatie Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("plantatie.in");
ofstream fout ("plantatie.out");
int r[10][505][505],e[505],i,p,j,jj2,jj1,i1,i2,n,m,lat,L,k;
int main()
{
    fin>>n>>m;
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++) fin>>r[0][i][j];
    for (p=1,lat=2;lat<=n;p++,lat*=2)
        for (i1=1;i1<=n;i1++)
            for(jj1=1;jj1<=n;jj1++)
                {
                    i2=i1+(lat>>1);
                    jj2=jj1+(lat>>1);
                    r[p][i1][jj1]=max(max(r[p-1][i1][jj1],r[p-1][i2][jj1]),max(r[p-1][i1][jj2],r[p-1][i2][jj2]));
                }
    e[1]=0;
    for (i=2;i<=n;i++) e[i]=1+e[i/2];
    while (m)
        {
            fin>>i1>>jj1>>L;
            k=e[L];
            lat=(1<<k);
            i2=i1+L-lat;
            jj2=jj1+L-lat;
            fout<<max(max(r[k][i1][jj1],r[k][i2][jj2]), max(r[k][i2][jj1],r[k][i2][jj2]))<<"\n";
            m--;
        }
    return 0;
}