CF1620B.Triangles on a Rectangle
入门
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
A rectangle with its opposite corners in (0,0) and (w,h) and sides parallel to the axes is drawn on a plane.
You are given a list of lattice points such that each point lies on a side of a rectangle but not in its corner. Also, there are at least two points on every side of a rectangle.
Your task is to choose three points in such a way that:
- exactly two of them belong to the same side of a rectangle;
- the area of a triangle formed by them is maximum possible.
Print the doubled area of this triangle. It can be shown that the doubled area of any triangle formed by lattice points is always an integer.
一个矩形的两个对角顶点位于 (0,0) 和 (w,h),且其边与坐标轴平行,绘制在平面上。
给定一个格点列表,其中每个点均位于该矩形的某条边上(但不在顶点处)。此外,矩形的每条边上至少包含两个给定点。
你的任务是从中选出三个点,满足以下条件:
- 其中恰好有两个点位于矩形的同一条边上;
- 这三个点构成的三角形面积尽可能大。
请输出该三角形面积的两倍。可以证明:由格点构成的任意三角形的面积的两倍恒为整数。
输入格式
The first line contains a single integer t (1≤t≤104) — the number of testcases.
The first line of each testcase contains two integers w and h (3≤w,h≤106) — the coordinates of the corner of a rectangle.
The next two lines contain the description of the points on two horizontal sides. First, an integer k (2≤k≤2⋅105) — the number of points. Then, k integers x1<x2<⋯<xk (0<xi<w) — the x coordinates of the points in the ascending order. The y coordinate for the first line is 0 and for the second line is h.
The next two lines contain the description of the points on two vertical sides. First, an integer k (2≤k≤2⋅105) — the number of points. Then, k integers y1<y2<⋯<yk (0<yi<h) — the y coordinates of the points in the ascending order. The x coordinate for the first line is 0 and for the second line is w.
The total number of points on all sides in all testcases doesn't exceed 2⋅105.
第一行包含一个整数 t(1≤t≤104)—— 测试用例的数量。
每个测试用例的第一行包含两个整数 w 和 h(3≤w,h≤106)—— 矩形右上角的坐标。
接下来的两行描述矩形两条水平边上的点。首先是一个整数 k(2≤k≤2⋅105)—— 点的数量;然后是 k 个整数 x1<x2<⋯<xk(0<xi<w)—— 按升序排列的各点的 x 坐标。第一行(即底边)上所有点的 y 坐标为 0,第二行(即顶边)上所有点的 y 坐标为 h。
再接下来的两行描述矩形两条竖直边上的点。首先是一个整数 k(2≤k≤2⋅105)—— 点的数量;然后是 k 个整数 y1<y2<⋯<yk(0<yi<h)—— 按升序排列的各点的 y 坐标。第一行(即左边)上所有点的 x 坐标为 0,第二行(即右边)上所有点的 x 坐标为 w。
所有测试用例中,四条边上点的总数不超过 2⋅105。
输出格式
For each testcase print a single integer — the doubled maximum area of a triangle formed by such three points that exactly two of them belong to the same side.
对于每个测试用例,输出一个整数——即由满足“其中恰好有两个点位于同一条边上”的三个点所构成的三角形的最大面积的两倍。
输入输出样例
输入#1
3 5 8 2 1 2 3 2 3 4 3 1 4 6 2 4 5 10 7 2 3 9 2 1 7 3 1 3 4 3 4 5 6 11 5 3 1 6 8 3 3 6 8 3 1 3 4 2 2 4
输出#1
25 42 35
说明/提示
The points in the first testcase of the example:
- (1,0), (2,0);
- (2,8), (3,8), (4,8);
- (0,1), (0,4), (0,6);
- (5,4), (5,5).
The largest triangle is formed by points (0,1), (0,6) and (5,4) — its area is 225. Thus, the doubled area is 25. Two points that are on the same side are: (0,1) and (0,6).
示例中第一个测试用例的点:
- (1,0)、(2,0);
- (2,8)、(3,8)、(4,8);
- (0,1)、(0,4)、(0,6);
- (5,4)、(5,5)。
面积最大的三角形由点 (0,1)、(0,6) 和 (5,4) 构成,其面积为 225。因此,该三角形面积的两倍为 25。位于同侧的两个点是:(0,1) 和 (0,6)。
输入解题思路,AI测评打分。不知道怎么写?