Cod sursa(job #3301850)

Utilizator TimofeiFilipTimofei Filip Emanuel TimofeiFilip Data 30 iunie 2025 14:43:33
Problema Plantatie Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <bits/stdc++.h>
using namespace std;

const int NMAX = 505;

int mat[NMAX][NMAX], rmq[NMAX][NMAX][NMAX];

int main()
{
    freopen("plantatie.in", "r", stdin);
    freopen("plantatie.out", "w", stdout);

    int n, q;
    scanf("%d %d", &n, &q);

    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++)
        {
            scanf("%d", &mat[i][j]);
            rmq[i][j][1] = mat[i][j];
        }
    for (int k = 2; k <= n; ++k)
        for (int i = 1; i + k - 1 <= n; ++i)
            for (int j = 1; j + k - 1 <= n; ++j)
                rmq[i][j][k] = max({rmq[i][j][k - 1],
                                    rmq[i + 1][j][k - 1],
                                    rmq[i][j + 1][k - 1],
                                    rmq[i + 1][j + 1][k - 1]});
    while (q--)
    {
        int lin, col, lat;
        scanf("%d %d %d", &lin, &col, &lat);
        printf("%d\n", rmq[lin][col][lat]);
    }
    return 0;
}