CF1620B.Triangles on a Rectangle

入门

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

A rectangle with its opposite corners in (0,0)(0, 0) and (w,h)(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)(0, 0) 和 (w,h)(w, h),且其边与坐标轴平行,绘制在平面上。

给定一个格点列表,其中每个点均位于该矩形的某条边上(但不在顶点处)。此外,矩形的每条边上至少包含两个给定点。

你的任务是从中选出三个点,满足以下条件:

  • 其中恰好有两个点位于矩形的同一条边上;
  • 这三个点构成的三角形面积尽可能大。

请输出该三角形面积的两倍。可以证明:由格点构成的任意三角形的面积的两倍恒为整数。

输入格式

The first line contains a single integer tt (1≤t≤1041 \le t \le 10^4) — the number of testcases.

The first line of each testcase contains two integers ww and hh (3≤w,h≤1063 \le w, h \le 10^6) — 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 kk (2≤k≤2⋅1052 \le k \le 2 \cdot 10^5) — the number of points. Then, kk integers x1<x2<⋯<xkx_1 \lt x_2 \lt \dots \lt x_k (0<xi<w0 \lt x_i \lt w) — the xx coordinates of the points in the ascending order. The yy coordinate for the first line is 00 and for the second line is hh.

The next two lines contain the description of the points on two vertical sides. First, an integer kk (2≤k≤2⋅1052 \le k \le 2 \cdot 10^5) — the number of points. Then, kk integers y1<y2<⋯<yky_1 \lt y_2 \lt \dots \lt y_k (0<yi<h0 \lt y_i \lt h) — the yy coordinates of the points in the ascending order. The xx coordinate for the first line is 00 and for the second line is ww.

The total number of points on all sides in all testcases doesn't exceed 2⋅1052 \cdot 10^5.

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4)—— 测试用例的数量。

每个测试用例的第一行包含两个整数 ww 和 hh(3≤w,h≤1063 \le w, h \le 10^6)—— 矩形右上角的坐标。

接下来的两行描述矩形两条水平边上的点。首先是一个整数 kk(2≤k≤2⋅1052 \le k \le 2 \cdot 10^5)—— 点的数量;然后是 kk 个整数 x1<x2<⋯<xkx_1 \lt x_2 \lt \dots \lt x_k(0<xi<w0 \lt x_i \lt w)—— 按升序排列的各点的 xx 坐标。第一行(即底边)上所有点的 yy 坐标为 00,第二行(即顶边)上所有点的 yy 坐标为 hh。

再接下来的两行描述矩形两条竖直边上的点。首先是一个整数 kk(2≤k≤2⋅1052 \le k \le 2 \cdot 10^5)—— 点的数量;然后是 kk 个整数 y1<y2<⋯<yky_1 \lt y_2 \lt \dots \lt y_k(0<yi<h0 \lt y_i \lt h)—— 按升序排列的各点的 yy 坐标。第一行(即左边)上所有点的 xx 坐标为 00,第二行(即右边)上所有点的 xx 坐标为 ww。

所有测试用例中,四条边上点的总数不超过 2⋅1052 \cdot 10^5。

输出格式

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)(1, 0), (2,0)(2, 0);
  • (2,8)(2, 8), (3,8)(3, 8), (4,8)(4, 8);
  • (0,1)(0, 1), (0,4)(0, 4), (0,6)(0, 6);
  • (5,4)(5, 4), (5,5)(5, 5).

The largest triangle is formed by points (0,1)(0, 1), (0,6)(0, 6) and (5,4)(5, 4) — its area is 252\frac{25}{2}. Thus, the doubled area is 2525. Two points that are on the same side are: (0,1)(0, 1) and (0,6)(0, 6).

示例中第一个测试用例的点:

  • (1,0)(1, 0)、(2,0)(2, 0);
  • (2,8)(2, 8)、(3,8)(3, 8)、(4,8)(4, 8);
  • (0,1)(0, 1)、(0,4)(0, 4)、(0,6)(0, 6);
  • (5,4)(5, 4)、(5,5)(5, 5)。

面积最大的三角形由点 (0,1)(0, 1)、(0,6)(0, 6) 和 (5,4)(5, 4) 构成,其面积为 252\frac{25}{2}。因此,该三角形面积的两倍为 2525。位于同侧的两个点是:(0,1)(0, 1) 和 (0,6)(0, 6)。

输入解题思路,AI测评打分。不知道怎么写?

首页