Cod sursa(job #2054713)

Utilizator LauraNaduLaura Nadu LauraNadu Data 2 noiembrie 2017 13:56:39
Problema Plantatie Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int n, m, i, d[20][503][503], sol, k, i2, j, j2, l;
int main()
{
    f>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            f>>d[0][i][j];
    for(k=1;(1<<k)<=n;k++)
    {
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
            {
                d[k][i][j]=d[k][i][j];
                d[k][i][j]=max(d[k][i][j], d[k-1][i][j+(1<<(k-1))]);
                d[k][i][j]=max(d[k][i][j], d[k-1][i+(1<<(k-1))][j]);
                d[k][i][j]=max(d[k][i][j], d[k-1][i+(1<<(k-1))][j+(1<<(k-1))]);
            }
    }
    for(;m;m--)
    {
        f>>i>>j>>l;
        i2=i+l-1;
        j2=j+l-1;
        k=log2(l);
        d[k][i][j]=max(d[k][i][j], d[k][i][j2-(1<<k)+1]);
        d[k][i][j]=max(d[k][i][j], d[k][i2-(1<<k)+1][j]);
        d[k][i][j]=max(d[k][i][j], d[k][i2-(1<<k)+1][j2-(1<<k)+1]);
        g<<d[k][i][j]<<"\n";
    }
    return 0;
}