Cod sursa(job #3225591)

Utilizator Zed1YasuoAlex Birsan Zed1Yasuo Data 18 aprilie 2024 01:31:37
Problema Plantatie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <cmath>
#include <algorithm>
///RMQ
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int n,m,a[505][505][10];
int main()
{
    f>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            f>>a[i][j][0];
    int lg=log2(n);
    for(int t=1;t<=lg;t++)
    {
        int dr=(1<<t);
        for(int i=1;i+dr<=n+1;i++)
            for(int j=1;j+dr<=n+1;j++)
            a[i][j][t]=max(max(max(a[i][j][t-1],a[i][j+dr/2][t-1]),a[i+dr/2][j][t-1]),a[i+dr/2][j+dr/2][t-1]);
    }
    for(int i=1;i<=m;i++)
    {
        int x,y,k;
        f>>x>>y>>k;
        int lg=log2(k);
        int xf=x+k;
        int yf=y+k;
        int dr=(1<<lg);
        int v=max(a[x][y][lg],a[xf-dr][y][lg]);
        v=max(v,a[xf-dr][yf-dr][lg]);
        v=max(v,a[x][yf-dr][lg]);
        g<<v<<'\n';
    }
    return 0;
}