Pagini recente » Cod sursa (job #2782013) | Cod sursa (job #2421296) | Cod sursa (job #1508888) | Cod sursa (job #1809922) | Cod sursa (job #3232350)
#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';
}
}