题面
平面上有一个坏点,在不包含坏点的情况下找最大矩形
平面长宽 <= 104
分析
不难推测,最大的矩形一定与坏点相邻(受到坏块制约)
与坏点相邻的矩形有4种,取最大值即可。
圆圈代表坏区,上下左右四个矩形其余边都是原平面的边界。
当圆圈本身在边界时,周围有矩形的面积会变成0,这不影响我们取max
代码
#include <stdio.h>
#include<iostream>
#include<cstdlib>
#include<algorithm>
using namespace std;
int maxx(int a, int b, int c, int d)
{
return max(max(a, b), max(c, d));
}
int main()
{
ios::sync_with_stdio(false);
int t;
cin >> t;
int a, b, px, py;
int l=0, r=0, u=0, d=0;//上下左右四个面积
for (int o = 0; o < t; o++)
{
cin >> a>>b>>px>>py;
u = a * (py);
d = a * (b - 1 - py);
l = b * (px);
r = b * (a - 1 - px);
cout << maxx(l, r, u, d) << endl;
}
return 0;
}