CF1741F.Multi-Colored Segments

普及+/提高

通过率:0%

时间限制:3.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

Dmitry has nn segments of different colors on the coordinate axis OxOx. Each segment is characterized by three integers lil_i, rir_i and cic_i (1≤li≤ri≤109,1≤ci≤n1 \le l_i \le r_i \le 10^9, 1 \le c_i \le n), where lil_i and rir_i are are the coordinates of the ends of the ii-th segment, and cic_i is its color.

Dmitry likes to find the minimum distances between segments. However, he considers pairs of segments of the same color uninteresting. Therefore, he wants to know for each segment the distance from this segment to the nearest differently colored segment.

The distance between two segments is the minimum of the distances between a point of the first segment and a point of the second segment. In particular, if the segments intersect, then the distance between them is equal to 00.

For example, Dmitry has 55 segments:

  • The first segment intersects with the second (and these are segments of different colors), so the answers for them are equal to 00.
  • For the 33-rd segment, the nearest segment of a different color is the 22-nd segment, the distance to which is equal to 22.
  • For the 44-th segment, the nearest segment of a different color is the 55-th segment, the distance to which is equal to 11.
  • The 55-th segment lies inside the 22-nd segment (and these are segments of different colors), so the answers for them are equal to 00.

德米特里在坐标轴 OxOx 上有 nn 条不同颜色的线段。每条线段由三个整数 lil_i、rir_i 和 cic_i(1≤li≤ri≤1091 \le l_i \le r_i \le 10^9,1≤ci≤n1 \le c_i \le n)表征,其中 lil_i 和 rir_i 是第 ii 条线段两个端点的坐标,cic_i 是其颜色。

德米特里喜欢计算线段之间的最小距离。但他认为同色线段对是无趣的。因此,他希望对每条线段,求出它到最近的异色线段的距离。

两条线段之间的距离定义为:第一条线段上某点与第二条线段上某点之间距离的最小值。特别地,若两条线段相交,则它们之间的距离为 00。

例如,德米特里有 55 条线段:

  • 第一条线段与第二条线段相交(且二者颜色不同),因此它们的答案均为 00。
  • 对于第三条线段,最近的异色线段是第二条线段,其距离为 22。
  • 对于第四条线段,最近的异色线段是第五条线段,其距离为 11。
  • 第五条线段完全位于第二条线段内部(且二者颜色不同),因此它们的答案均为 00。

输入格式

The first line of the input contains an integer tt (1≤t≤1041 \le t \le 10^4) — the number of test cases in the test.

The descriptions of the test cases follow.

The first line of description of each test case contains one integer nn (2≤n≤2⋅1052 \le n \le 2 \cdot 10^5) — the number of segments.

The next nn lines contain descriptions of the segments. Each segment is described by three integers lil_i, rir_i and cic_i (1≤li≤ri≤109,1≤ci≤n1 \le l_i \le r_i \le 10^9, 1 \le c_i \le n) — coordinates of the left and right ends of ii-th segment, as well as the color of this segment. It is guaranteed that there are at least 22 segments of different colors.

It is guaranteed that the sum of nn over all test cases does not exceed 2⋅1052 \cdot 10^5.

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

随后是各测试用例的描述。

每个测试用例的描述以一行开始,该行包含一个整数 nn(2≤n≤2⋅1052 \le n \le 2 \cdot 10^5)——线段的数量。

接下来的 nn 行描述了这些线段。每条线段由三个整数 lil_i、rir_i 和 cic_i(1≤li≤ri≤1091 \le l_i \le r_i \le 10^9,1≤ci≤n1 \le c_i \le n)描述——分别表示第 ii 条线段左端点和右端点的坐标,以及该线段的颜色。保证至少存在两条颜色不同的线段。

保证所有测试用例的 nn 值之和不超过 2⋅1052 \cdot 10^5。

输出格式

For each test case, on a separate line print nn integers, where the ii-th number is equal to the distance from the ii-th segment to the nearest segment of a different color.

对于每个测试用例,在单独的一行中输出 nn 个整数,其中第 ii 个数等于第 ii 个线段到颜色不同的最近线段的距离。

输入输出样例

  • 输入#1

    9
    3
    1 2 1
    3 4 1
    5 6 2
    2
    100000000 200000000 1
    900000000 1000000000 2
    5
    1 2 1
    2 3 2
    3 4 3
    4 5 4
    5 6 5
    5
    1 5 1
    4 9 2
    1 2 1
    8 9 2
    5 7 3
    2
    1 100 2
    10 90 1
    3
    1 1 1
    10 10 2
    1000000000 1000000000 3
    3
    3 4 1
    2 5 1
    1 6 2
    6
    5 6 2
    11 12 3
    7 8 2
    3 4 2
    1 2 1
    9 10 2
    2
    1 3 1
    2 3 2

    输出#1

    3 1 1 
    700000000 700000000 
    0 0 0 0 0 
    0 0 2 1 0 
    0 0 
    9 9 999999990 
    0 0 0 
    3 1 3 1 1 1 
    0 0
  • 输入#2

    4
    8
    11 16 7
    12 15 7
    2 5 8
    17 22 5
    1 8 8
    19 23 8
    16 16 6
    6 7 5
    9
    1 4 3
    5 11 1
    8 11 3
    1 10 1
    2 11 1
    1 10 4
    3 11 1
    5 7 1
    1 11 1
    9
    25 25 1
    26 26 1
    24 24 2
    13 14 2
    12 16 2
    17 18 1
    19 19 1
    24 27 2
    24 27 1
    9
    15 18 1
    20 22 2
    13 22 2
    13 22 2
    3 13 2
    6 10 2
    3 6 2
    19 24 2
    22 24 2

    输出#2

    0 1 1 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 
    0 0 0 3 1 1 3 0 0 
    0 2 0 0 2 5 9 1 4

说明/提示

In the first test case of the first sample there is only one segment of color 22, and all other segments have color 11. Therefore, for segments of color 11, the answer is equal to the distance to the 33rd segment, and for 33rd one, the answer is equal to the minimum of the distances to segments of color 11.

In the second test case of the first sample there are only 22 segments, and for both of them the answer is equal to the distance between them.

In the third test case of the first sample, each segment intersects at least one of its ends with a segment of a different color, so all answers are equal to 00.

The fourth test case of the first sample is described in the problem statement.

In the fifth test case of the first sample, one segment lies completely inside the other, and for both of them the answer is 00.

In the sixth test case of the first sample, all segments are points of different colors.

在第一个样例的第一组测试数据中,只有一段颜色为 22 的线段,其余所有线段的颜色均为 11。因此,对于颜色为 11 的线段,其答案等于到第 33 段线段的距离;而对于第 33 段线段,其答案等于到所有颜色为 11 的线段的距离的最小值。

在第一个样例的第二组测试数据中,仅有 22 段线段,且这两段线段的答案均等于它们之间的距离。

在第一个样例的第三组测试数据中,每一段线段至少有一个端点与某段不同颜色的线段相交,因此所有答案均为 00。

第一个样例的第四组测试数据已在题目描述中给出。

在第一个样例的第五组测试数据中,一段线段完全包含于另一段线段内部,且这两段线段的答案均为 00。

在第一个样例的第六组测试数据中,所有线段均为不同颜色的点。

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

首页