Cod sursa(job #3330928)

Utilizator Zander01523Unguru Alexandru-Ionut Zander01523 Data 23 decembrie 2025 11:49:40
Problema Plantatie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
const int nMax=2e5+5,MOD=1e9+7,lg=10;

int t,n,m,k,x,y,z,a,b,c,d,cnt,ans,rez,sum,poz,len,e;
int v[nMax],rmq[lg][501][501],E[501];
bool ok;
char ch;
string s;
map<int,int>mp;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    fin>>n>>m;
    for(int i=1; i<=n; ++i)
        for(int j=1; j<=n; ++j)
            fin>>rmq[0][i][j];
    for(int bit=1; bit<lg; ++bit)
        for(int i=1; i<=n; ++i)
            for(int j=1; j<=n; ++j)
            {
                a=min(n,i+(1<<(bit-1)));
                b=min(n,j+(1<<(bit-1)));
                rmq[bit][i][j]=max({rmq[bit-1][i][j],rmq[bit-1][i][b],rmq[bit-1][a][j],rmq[bit-1][a][b]});
            }
    for(int i=2; i<=n; ++i)
        E[i]=E[i/2]+1;
    while(m--)
    {
        fin>>x>>y>>z;
        len=z;
        e=E[len];
        fout<<max({rmq[e][x][y],rmq[e][x][y+z-(1<<e)],rmq[e][x+z-(1<<e)][y],rmq[e][x+z-(1<<e)][y+z-(1<<e)]})<<'\n';
    }
}