Cod sursa(job #3232350)

Utilizator JuliaGrasuJulia Grasu JuliaGrasu Data 30 mai 2024 00:50:32
Problema Plantatie Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");



int main(){
int matrice[11][501][501];
int n,m,i,j,k, linie,coloana,x,y,putere,p;
f>>n>>m;

for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
        f>>matrice[0][i][j];



for(i=1; (1<<i) <=n; i++){
     for(j=1; j+(1<<i)-1 <= n; j++)
        {for(k=1; k+(1<<i)- 1 <= n; k++)
            {linie = j + (1 << (i-1));
            coloana = k + (1 << (i-1));
            int max1 = max(matrice[i-1][j][k], matrice[i-1][j][coloana]);
            int max2 =max(matrice[i-1][linie][k], matrice[i-1][linie][coloana]);
            matrice[i][j][k] = max(max1,max2 );
            }
        }
    }


//parte de rezolvare

for(i=1;i<=m;i++){
    f>>x>>y>>p;

    putere = -1;
    while(p){
        p>>=1;
        putere++;
    }
    linie = x + p -(1<<putere);
    coloana = y + p -(1<<putere);

int rez1 = max(matrice[putere][x][y], matrice[putere][x][coloana]);
int rez2 = max(matrice[putere][linie][y], matrice[putere][linie][coloana]);
g<< max(rez1,rez2 ) << '\n';

}
}