Cod sursa(job #2988683)

Utilizator Luca529Taschina Luca Luca529 Data 5 martie 2023 12:18:21
Problema Plantatie Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int x[501][501][20], y[501], r[1001];

int main()
{   int n, m, a, b, c;
    fin>>n>>m;
    for(int i=2;i<=n;i++)
    r[i]=1+r[i/2];

    for(int i=1;i<=n;i++)
    {for(int j=1;j<=n;j++)
     fin>>y[j];

     for(int i1=1;i1<=n;i1++)
     {x[i][i1][0]=y[i1];
      for(int j=1;1<<j<=i1;j++)
      x[i][i1][j]=max(x[i][i1][j-1], x[i][i1-(1<<(j-1))][j-1]);
     }
    }

    for(int i=1;i<=m;i++)
    {fin>>a>>b>>c;
     int maxi=-1, l=r[c];

     for(int j=a;j<=a+c-1;j++)
     maxi=max(maxi, max(x[j][b+(1<<l)-1][l], x[j][b+c-1][l]));

     fout<<maxi<<"\n";
    }

    return 0;
}