Codeforces Round #623 A.Dead Pixel

题面

平面上有一个坏点,在不包含坏点的情况下找最大矩形
平面长宽 <= 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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章