Cod sursa(job #1957645)

Utilizator the.manIon Man the.man Data 7 aprilie 2017 17:52:30
Problema Plantatie Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int n,t,i,j,k,x,y,d,a[501][501][10];
int maxim (int a,int b,int c, int d)
{
    return max(max(a,b),max(c,d));
}
int main()
{
    f>>n>>t;
    for(i=1;i<=n;++i) for(j=1;j<=n;++j)  f>>a[i][j][0];

    for(k=1;k<=log2(n);++k)
    {
        d=(1<<(k-1));
        for(i=1;i<=n-d;++i)
        for(j=1;j<=n-d;++j)
        a[i][j][k]=maxim(a[i][j][k-1],a[i+d][j][k-1],a[i][j+d][k-1],a[i+d][j+d][k-1]);
    }
    for(;t;--t)
    {
        f>>x>>y>>k;
        d=(1<<((int)log2(k)-1));
        g<<maxim(a[x]    [y]    [(int)log2(k)-1],
                 a[x+k-d][y]    [(int)log2(k)-1],
                 a[x]    [y+k-d][(int)log2(k)-1],
                 a[x+k-d][y+k-d][(int)log2(k)-1])<<'\n';
    }
    return 0;
}