Cod sursa(job #2466325)

Utilizator alexdumitrescuDumitrescu George Alex alexdumitrescu Data 1 octombrie 2019 21:33:16
Problema Plantatie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin ("plantatie.in");
ofstream fout ("plantatie.out");
int q, n, a[505][505][10], i, j, x, y, k, lg;
int main()
{
    fin >> n >> q;
    for(i=1; i<=n; i++)
        for(j=1; j<=n; j++)
            fin >> a[i][j][0];

    for(k=1; 1<<k <= n; k++)
        for(i=1; i+(1<<k)-1<=n; i++)
            for(j=1; j+(1<<k)-1<=n; j++)
                a[i][j][k]=max(max(a[i][j][k-1], a[i][j+(1<<k-1)][k-1]), max(a[i+(1<<k-1)][j][k-1], a[i+(1<<k-1)][j+(1<<k-1)][k-1]));

    for(i=1;i<=q;i++)
    {
        fin >> x >> y >> lg;
        for(k=0;1<<k+1 <= lg; k++);
        fout << max(max(a[x][y][k], a[x][y+lg-(1<<k)][k]), max(a[x+lg-(1<<k)][y][k], a[x+lg-(1<<k)][y+lg-(1<<k)][k])) << '\n';
    }
    return 0;
}