Cod sursa(job #2640921)

Utilizator lucametehauDart Monkey lucametehau Data 9 august 2020 11:31:40
Problema Balans Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#include <iomanip>

using namespace std;

ifstream cin ("balans.in");
ofstream cout ("balans.out");

int n, m, r, c;
int a;
long long b;

int v[305][305];
long long sp[305][305];

int main() {
  cin >> n >> m >> r >> c;
  for(int i = 1; i <= 2 * n; i++) {
    for(int j = 1; j <= 2 * m; j++) {
      if(i <= n && j <= m) {
        cin >> v[i][j];
        v[i + n][j] = v[i][j + m] = v[i + n][j + m] = v[i][j];
      }
      sp[i][j] = sp[i - 1][j] + sp[i][j - 1] - sp[i - 1][j - 1] + v[i][j];
    }
  }
  a = -1;
  b = (long long)1e12;
  for(int x = r; x <= n; x++) {
    for(int y = c; y <= m; y++) {
      for(int i = n + 1; i <= 2 * n; i++) {
        for(int j = m + 1; j <= 2 * m; j++) {
          if((sp[i][j] - sp[i - x][j] - sp[i][j - y] + sp[i - x][j - y]) * b >= a * x * y)
            a = (sp[i][j] - sp[i - x][j] - sp[i][j - y] + sp[i - x][j - y]), b = x * y;
        }
      }
    }
  }
  cout << fixed << setprecision(10) << 1.0 * a / b;
  return 0;
}