Cod sursa(job #2327151)

Utilizator usureluflorianUsurelu Florian-Robert usureluflorian Data 24 ianuarie 2019 14:18:01
Problema Plantatie Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f ("plantatie.in");
ofstream g ("plantatie.out");
const int nmax=5e2+3;
int n,t,v[nmax][nmax][13],lg[nmax],x,y,k,u,sol;
int main()
{
    ios::sync_with_stdio(false);
    f>>n>>t;
    for(int i=1;i<=n;++i)
    {
        for(int j=1;j<=n;++j) f>>v[i][j][0];
    }
    for(int i=2;i<=n;++i) lg[i]=lg[i/2]+1;
    for(int k=1;(1<<k)<=n;++k)
    {
        int d=(1<<(k-1));
        for(int i=1;i+d*2<=n+1;++i)
        {
            for(int j=1;j+d<=n+1;++j)
            {
                v[i][j][k]=max(max(v[i][j][k-1],v[i+d][j][k-1]),max(v[i][j+d][k-1],v[i+d][j+d][k-1]));
            }
        }
    }
    while(t--)
    {
        f>>x>>y>>k;
        u=lg[k];
        sol=v[x][y][u];
        sol=max(v[x][y][u],v[x][y-(1<<u)+k][u]);
        sol=max(v[x][y][u],v[x-(1<<u)+k][y][u]);
        sol=max(v[x][y][u],v[x-(1<<u)+k][y-(1<<u)+k][u]);
        g<<sol<<'\n';
    }
    return 0;
}