Pagini recente » Cod sursa (job #2988980) | Cod sursa (job #1292345) | Cod sursa (job #2160332) | Cod sursa (job #2174207) | Cod sursa (job #904912)
Cod sursa(job #904912)
# include <fstream>
# include <cmath>
# define lg2 0.30102999
# define dim 505
using namespace std;
long mat[ dim ][ dim ][ 10 ], a[ dim ][ dim ];
int n,m;
inline void initializare()
{
for(int i=0; i<n; ++i )
for(int j=0; j<n; ++j )
mat[ i ][ j ][ 0 ] = a[ i ][ j ];
for(int k=1; 1<<k <=n; ++k )
for(int i=0; i+(1<<k)-1 <n; ++i )
for(int j=0; j+(1<<k)-1 <n; ++j )
mat[ i ][ j ][ k ] = max( mat[ i ][ j ][ k-1 ], max( mat[ i ][ j+(1<<(k-1)) ][k-1], max( mat[ i+(1<<(k-1)) ][ j ][ k-1 ], mat[ i+(1<<(k-1)) ][j+(1<<(k-1))][k-1])));
}
inline void citire()
{
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
fin >> n >> m;
for(int i=0; i<n; ++i )
for(int j=0; j<n; ++j )
fin >> a[ i ][ j ];
initializare();
for(; m; --m )
{
int i, j; float k;
fin >> i >> j >> k;
--i; --j;
int p = log10( k ) / lg2;
fout << max( mat[ i ][ j ][ p ], max( mat[ i ][ j+int(k)-(1<<p) ][p], max( mat[ i+ int (k)-(1<<p) ][ j ][ p ], mat[ i+int (k)-(1<<p) ][ j+int(k)-(1<<p) ][p])));
fout<<"\n";
}
}
int main()
{
citire();
}