Cod sursa(job #2013807)

Utilizator 3DwArDPauliuc Edward 3DwArD Data 22 august 2017 14:29:49
Problema Plantatie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>
#define Nmax 502
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int n,q,m[Nmax][Nmax];
int a[Nmax][Nmax][10];
int main()
{
    f>>n>>q;
    for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){
        f>>m[i][j];
        a[i][j][0]=m[i][j];
    }
    for(int k=1;k<=log2(n);k++){
        for(int i=1;i<=n-(1<<k)+1;i++){
            for(int j=1;j<=n-(1<<k)+1;j++){
                a[i][j][k]=max(a[i][j][k-1],max(max(
                               a[i+(1<<(k-1))][j][k-1],
                               a[i][j+(1<<(k-1))][k-1]),
                               a[i+(1<<(k-1))][j+(1<<(k-1))][k-1]));
            }
        }
    }
    for(int qwe=1;qwe<=q;qwe++){
        int i,j,p;
        f>>i>>j>>p;
        int k=log2(p);
        g<<max(a[i][j][k],
               max(max(a[i+p-(1<<k)][j][k],
               a[i][j+p-(1<<k)][k]),a[i+p-(1<<k)][j+p-(1<<k)][k]))<<"\n";
    }
    return 0;
}