#P14806. [Bulgarian2018组队赛]Road Signs

[Bulgarian2018组队赛]Road Signs

题目描述

Eli 住在一条从西向东无限延伸的笔直街道旁。街道上有 N 个路标,每个路标的两面都写有数字。第 i 个路标位于 Eli 家以东 Pi 米处(Pi 也可能为负,表示该路标在 Eli 家以西)。

每个路标有两个数:

  • Wi:从东向西行驶的人看到的那一面上的数字;
  • Ei:从西向东行驶的人看到的那一面上的数字。

Eli 不知道这些数字到底代表什么。她猜测,这些数字表示路标到某两个非常重要点的距离(单位:米)。当然,不同路标可能指向不同的重要点。

现在 Eli 想知道,街道上哪些点对才是“最重要”的。她把一对点 XY重要性定义为:指向 XY 中至少一个点的路标数量。更正式地说,对于一对坐标为 XY 的点,其重要性等于满足以下任一条件的路标个数:

Pi - Wi = X
Pi - Wi = Y
Pi + Ei = X
Pi + Ei = Y

XY 可以取任意坐标,包括负数,因为这条街道向两个方向都无限延伸。

可能存在不止一对“最重要”的点。例如,可能有 K 个路标指向 X1, Y1,同时也有 K 个(可能不同的)路标指向 X2, Y2。Eli 现在想知道:

  1. 最重要点对的最大重要性是多少;
  2. 这样的点对一共有多少对。

输入格式

第一行输入一个整数 N,表示路标数量。

接下来 N 行,每行输入三个整数 Pi, Wi, Ei,分别表示:

  • 路标的位置;
  • 从东向西看见的数字;
  • 从西向东看见的数字。

输入保证:

  • 路标按位置 Pi 严格递增顺序给出;
  • 不存在两个路标位于相同位置;
  • 不存在一个点被所有路标同时指向。

输出格式

输出一行两个整数:

  • 最重要点对的最大重要性;
  • 具有该最大重要性的不同点对数量。

限制

  • 2 ≤ N ≤ 100000
  • 1 ≤ Ei, Wi ≤ 1000000
  • -1000000 ≤ Pi ≤ 1000000
  • 对于任意 i ≠ j,有 Pi ≠ Pj

额外测试点信息:

  • 给出 20% 分数的测试中,2 ≤ N ≤ 20
  • 给出 40% 分数的测试中,2 ≤ N ≤ 500
  • 给出 60% 分数的测试中,2 ≤ N ≤ 10000

示例 1

输入

11
-17 10 19
-8 2 50
-2 11 3
0 13 42
3 2 6
7 33 15
11 10 31
12 25 4
13 10 7
14 10 10
17 16 25

输出

6 3

样例解释

最重要点对的重要性为 6。一共有三对这样的点:

  • X1 = -13, Y1 = 1,对应路标集合 {3, 4, 5, 7, 8, 11}
  • X2 = -13, Y2 = 42,对应路标集合 {2, 3, 4, 7, 8, 11}
  • X3 = 1, Y3 = 42,对应路标集合 {2, 3, 4, 5, 7, 11}

示例 2

输入

24
-10 9 1
-9 20 10
-8 1 11
-7 12 17
-6 20 16
-5 22 13
-4 30 6
-3 20 7
-2 25 16
-1 3 21
0 30 7
1 17 22
2 9 5
3 25 18
4 21 13
5 16 17
6 4 5
7 15 8
8 11 24
9 26 3
10 25 14
11 2 21
12 22 5
13 24 17

输出

4 42

样例解释

所有最重要的点对为:

(-27, -19), (-27, -17), (-27, -11), (-27, -9), (-27, 2), (-27, 7), (-27, 10), (-27, 17), (-27, 32),
(-19, -17), (-19, -11), (-19, 2), (-19, 7), (-19, 17), (-19, 32),
(-17, -11), (-17, -9), (-17, 2), (-17, 7), (-17, 10), (-17, 32),
(-11, -9), (-11, 2), (-11, 7), (-11, 10), (-11, 17), (-11, 32),
(-9, 2), (-9, 7), (-9, 10), (-9, 17), (-9, 32),
(2, 7), (2, 10), (2, 17), (2, 32),
(7, 10), (7, 17), (7, 32),
(10, 17), (10, 32),
(17, 32)