#P15662. [Bulgarian2025训练营]Walltopia

[Bulgarian2025训练营]Walltopia

题目描述

Walltopia 是一家提供攀岩墙娱乐设施的公司。Alice 和 Bob 来到附近的一家 Walltopia 攀岩中心。

我们可以把那里的攀岩墙看成一个平面,上面有 NN 块人工岩点。第 ii 块岩点的位置为:

  • 距离墙底 yiy_i 厘米;
  • 距离墙中心向右 xix_i 厘米,xix_i 可以为负数;
  • 该岩点有一个湿滑系数 sis_i

保证不存在两块岩点位于同一位置。

Alice 想测试 Bob 的攀岩能力。她会恰好选择 K2K \ge 2 块岩点,称为特殊岩点。为了通过测试,Bob 必须从这些特殊岩点中选择两块不同的岩点,并且能够从第一块爬到第二块。

攀爬过程中,Bob 可以使用墙上的所有岩点,不限于特殊岩点。

从岩点 ii 可以直接爬到岩点 jj 当且仅当:

yj>yiy_j > y_i

并且

max(xjxi,yjyi)max(si,sj).\max(|x_j-x_i|, y_j-y_i) \le \max(s_i,s_j).

换句话说,Bob 只能向上爬,并且两点之间的切比雪夫距离不能超过两点湿滑系数的较大值。

请编写程序 walltopia,求最小的 KK,使得无论 Alice 怎样选择 KK 块特殊岩点,Bob 总能通过测试。

如果不存在这样的 KK,输出 1-1

输入格式

第一行包含一个正整数 NN,表示岩点数量。

接下来 NN 行,每行包含三个整数:

xi yi six_i\ y_i\ s_i

表示第 ii 块岩点的位置和湿滑系数。

输出格式

输出一个整数,表示满足条件的最小 KK

如果 Bob 无论如何都无法保证通过测试,输出 -1

数据范围

  • 1N5001 \le N \le 500
  • 106xi106-10^6 \le x_i \le 10^6
  • 1yi1061 \le y_i \le 10^6
  • 1si2×1061 \le s_i \le 2\times 10^6

子任务

子任务 分值 依赖子任务 NN 其他限制
0 - - 样例
1 9 20\le 20 si=2×106s_i=2\times 10^6
2 14 0-1
3 10 - 500\le 500 xi=0x_i=0,且所有 sis_i 相等
4 30 yiy_i 不是 33 的倍数,si=1s_i=1
5 37 0-4

只有通过该子任务及其依赖子任务的全部测试点,才能获得该子任务分数。

样例

输入

5
0 3 2
-1 5 1
4 4 3
-1 1 2
2 2 1

输出

3

说明

K=2K=2,Alice 可以选择最后两块岩点作为特殊岩点。Bob 无法从 (1,1)(-1,1) 直接爬到 (2,2)(2,2),因为

max(2(1),21)=3>max(2,1)=2.\max(|2-(-1)|,2-1)=3>\max(2,1)=2.

Bob 只能从 (1,1)(-1,1) 爬到 (0,3)(0,3),之后也无法爬到 (2,2)(2,2),因为他必须始终向上攀爬。

可以证明,当 Alice 任意选择 33 块岩点时,Bob 总能通过测试。