Cod sursa(job #3293134)

Utilizator unomMirel Costel unom Data 10 aprilie 2025 13:48:30
Problema Plantatie Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
#include <cmath>

using namespace std;

ifstream in("plantatie.in");
ofstream out("plantatie.out");
int n, q;
int v[505][505];
int rmq[11][505][505];

int min4(int a, int b, int c, int d)
{
    return min(min(a, b), min(c, d));
}

int main()
{
    in>>n>>q;

    for(int i = 1; i<=n; i++)
    {
        for(int j = 1; j<=n; j++)
        {
            in>>v[i][j];

            //out<<v[i][j]<<" ";
        }
        //out<<'\n';
    }

    for(int i = 1; i<=n; i++)
    {
        for(int j = 1; j<=n; j++)
        {
            rmq[0][i][j] = v[i][j];
        }
    }

    int lg = log2(n);

    for(int l = 1; l<=lg; l++)
    {
        for(int i = 1; i<=n - (1 << l) + 1; i++)
        {
            for(int j = 1; j<=n - (1 << l) + 1; j++)
            {
                rmq[l][i][j] = min4(rmq[l - 1][i][j], rmq[l - 1][i + (1 << (l - 1))][j], rmq[l - 1][i][j + (1 << (l - 1))], rmq[l][i + (1 << (l - 1))][j + (1 << (l - 1))]);
            }
        }
    }

    return 0;
}