Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- const int MAX_SIZE = 100;
- unsigned char field[MAX_SIZE+2][MAX_SIZE+2] = {};
- int prefix[MAX_SIZE+2][MAX_SIZE+2] = {};
- int sum(int i1, int j1, int i2, int j2)
- {
- return prefix[i2][j2] - prefix[i1-1][j2] - prefix[i2][j1-1] + prefix[i1-1][j1-1];
- }
- void fill_field(int i1, int j1, int i2, int j2)
- {
- for (int i = i1-1; i <= i2+1; ++i)
- for (int j = j1-1; j <= j2+1; ++j)
- field[i][j] = 1;
- }
- int main()
- {
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- freopen("INPUT.TXT", "r", stdin);
- int n, m, k;
- cin >> n >> m >> k;
- for (int i=0; i<n+2; ++i)
- {
- field[i][0] = field[i][m+1] = 1;
- prefix[i][0] = i + 1;
- }
- for (int j=0; j<m+2; ++j)
- {
- field[0][j] = field[n+1][j] = 1;
- prefix[0][j] = j + 1;
- }
- for(int i=0; i<k; ++i)
- {
- int i1, i2, j1, j2;
- cin >> i1 >> j1 >> i2 >> j2;
- fill_field(i1, j1, i2, j2);
- }
- for(int i = 1; i < n+1; ++i)
- for(int j = 1; j < m+1; ++j)
- prefix[i][j] = prefix[i-1][j] + prefix[i][j-1] - prefix[i-1][j-1] + field[i][j];
- int square = 0;
- for(int w = m; w > 1; --w)
- {
- bool found = false;
- for(int h = n; h > 1 && !found; --h)
- {
- for(int i = 1; i + h < n + 2 && !found; ++i)
- {
- for(int j = 1; j + w < m + 2 && !found; ++j)
- {
- if ( sum(i, j, i+h-1, j+w-1) == 0 )
- {
- if (w * h > square)
- {
- square = w * h;
- found = true;
- }
- }
- }
- }
- }
- }
- cout << square;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement