Cod sursa(job #2305805)
| Utilizator | Data | 21 decembrie 2018 08:47:40 | |
|---|---|---|---|
| Problema | Plantatie | Scor | 50 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("plantatie.in");
ofstream out("plantatie.out");
int l[502],r[502][502][9],a[502];
int main()
{
int n,m,i,j,k,nr,x,y,mx;
in>>n>>m;
for(i=2;i<=n;i++)
l[i]=1+l[i/2];
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
{
in>>r[k][i][0];
for(j=1;(1<<j)<=i;j++)
r[k][i][j]=max(r[k][i-(1<<(j-1))][j-1],r[k][i][j-1]);
}
while(m--)
{
in>>i>>j>>k;
nr=l[k];
mx=0;
for(x=i;x<i+k;x++)
mx=max(mx,max(r[x][j+(1<<nr)-1][nr],r[x][j+k-1][nr]));
out<<mx<<"\n";
}
return 0;
}
