Cod sursa(job #3283006)

Utilizator KLNNNDanaila Calin KLNNN Data 7 martie 2025 20:08:23
Problema Plantatie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");

int n, m, a[20][1001][1001], exp1[1001];

int main(){
    
    fin >> n >> m;
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= n; j++){
           fin >> a[0][i][j]; 
        }
    }

    for(int p = 1, lat = 2; lat <= n; p++, lat *= 2){
        for(int i = 1; i + lat - 1 <= n; i++){
            for(int j = 1; j + lat - 1 <= n; j++){
                int i1 = i + (lat>>1);
                int j1 = j + (lat>>1);
                a[p][i][j] = max({a[p-1][i][j], a[p-1][i][j1], a[p-1][i1][j], a[p-1][i1][j1]});
            }
        }
    }
    exp1[1] = 0;
    for(int i = 2; i <= n; i++){
        exp1[i] = 1 + exp1[i / 2];
    }

    for(int d = 1; d <= m; d++){
        int i, j, e, l, len;
        fin >> i >> j >> l;
        e = exp1[l];
        len = (1 << e);
        int i1 = i + l - len;
        int j1 = j + l - len;
        fout << max({a[e][i][j], a[e][i][j1], a[e][i1][j], a[e][i1][j1]}) << endl;
    }
}