Pagini recente » Cod sursa (job #2709588) | Cod sursa (job #2888804) | Cod sursa (job #534296) | Cod sursa (job #66827) | Cod sursa (job #2613760)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("plantatie.in");
ofstream g ("plantatie.out");
int v[502][502];
int m[502][502][11];
int n, q;
int main()
{
f>>n>>q;
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
f>>v[i][j];
m[i][j][0]=v[i][j];
cout<<v[i][j]<<" ";
}
cout<<"\n";
}
for(int k=1; (1<<k)<=n; k++)
{
for(int i=0; i<=n-(1<<k); i++)
{
for(int j=0; j<=n-(1<<k); j++)
{
int a=max(m[i][j][k-1], m[i][j+(1<<(k-1))][k-1]);
int b=max(m[i+(1<<(k-1))][j][k-1], m[i+(1<<(k-1))][j+(1<<(k-1))][k-1]);
m[i][j][k]=max(a, b);
}
}
}
for(int x=0; x<q; x++)
{
int i, j, k;
f>>i>>j>>k;
i--;
j--;
int log=(int)log2(k);
cout<<log<<"\n";
//cout<<i<<j+k-(1<<log)<<log<<"\n";
int a=max(m[i][j+k-(1<<log)][log], m[i][j][log]);
int b=max(m[i+k-(1<<log)][j+k-(1<<log)][log], m[i+k-(1<<log)][j][log]);
g<<max(a, b)<<"\n";;
}
return 0;
}