Cod sursa(job #1076590)

Utilizator bghimisFMI Ghimis Bogdan bghimis Data 10 ianuarie 2014 13:22:15
Problema Plantatie Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
using namespace std;

int d[51][51][51];
int ma[51][51];

int main()
{
  ifstream in ("plantatie.in");
  ofstream out("plantatie.out");

  int n, m; 
  in >> n >> m;

  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= n; ++j)
      {
	in >> ma[i][j];
	d[i][j][1] = ma[i][j];
      }

  for (int i = n; i >= 1; --i)
    {
      for (int j = n; j >= 1; --j)
	{
	  for (int k = 1; k <= n; ++k)
	  {
	    d[i][j][k] += max(d[i][j][k - 1], max(d[i + 1][j][k - 1], max(d[i][j + 1][k - 1], d[i + 1][j + 1][k - 1])));
	    //out << "d["<< i << "][" << j << "][" << k << "] = " << d[i][j][k] << " ";
	  }
	  //out << "\n";
	}
      //out << "\n";
    }
 
  int q = m;
  for (int i = 1; i <= q; ++i)
    {
      int x, y, z; in >> x >> y >> z;
      out << d[x][y][z] << "\n";
    }

  in .close();
  out.close();

  return 0;
}