#P12196. [NOISG 2025 Prelim] Lasers 2

[NOISG 2025 Prelim] Lasers 2

Description

Pavement 从 Gohcart 那里购买了一个激光玩具(Gohcart 原先是从 Rar the Cat 那里买的)。这个玩具有一个由 hhww 列组成的网格。网格的行编号从上到下为 11hh,列编号从左到右为 11ww

每一行恰好包含一个上锁的滑动墙。初始时,第 ii 行的墙覆盖第 l[i]l[i] 列到第 r[i]r[i] 列(从 11 开始编号),解锁它需要花费 c[i]c[i] 美元。墙一旦解锁,就可以在第 ii 行上水平滑动到任意位置,只要它对齐在网格的边缘内即可。墙的任何部分都不能超出玩具的左边缘或右边缘。

每一列的顶部都有一个朝下的激光。如果某个滑动墙位于第 ii 列,那么它将阻挡第 ii 列上的激光。

一个可能的玩具示例如下,其中 h=3h = 3w=10w = 10

给定总预算 kk 美元,Pavement 的目标是在合理解锁并滑动墙壁的情况下,最大化未被阻挡的激光数量。请你确定他最多可以实现多少束未被阻挡的激光。

Input Format

你的程序必须从标准输入读取数据。

第一行输入包含三个用空格分隔的整数 h,wh, wkk,分别表示网格的行数、列数和预算。

接下来的 hh 行中,每行包含三个用空格分隔的整数,表示第 ii 行的滑动墙的信息,分别是 l[i],r[i]l[i], r[i]c[i]c[i]

Output Format

你的程序必须将结果打印到标准输出。

输出一个整数,表示最多可以实现的未被阻挡的激光数量。

3 10 10
2 5 9
1 3 1
4 7 10
6
10 10 50
8 8 0
3 3 0
6 6 2
7 7 9
1 1 50
5 5 21
6 6 4
10 10 4
10 10 3
10 10 3
9
4 17 0
2 4 1000000000
6 9 1000000000
8 13 1000000000
15 16 1000000000
4

Hint

子任务

对于所有测试用例,输入将满足以下约束条件:

  • 1h,w20001 \leq h, w \leq 2000
  • 0k1090 \leq k \leq 10^9
  • 对所有 1ih1 \leq i \leq h,满足 1l[i]r[i]w1 \leq l[i] \leq r[i] \leq w
  • 对所有 1ih1 \leq i \leq h,满足 0c[i]1090 \leq c[i] \leq 10^9

你的程序将在满足以下特殊性质的输入数据上进行测试:

子任务 分数 特殊性质
00 样例
11 66 k=0,c[i]=109k = 0, c[i] = 10^9
22 99 l[i]=r[i]l[i] = r[i]
33 1010 h,w18h, w \leq 18
44 77 h,w100,k2000h, w \leq 100, k \leq 2000
55 1515 h,w100h, w \leq 100
66 2323 h,w500h, w \leq 500
77 88 r[1]l[1]=r[2]l[2]==r[h]l[h]r[1] − l[1] = r[2] − l[2] = \ldots = r[h] − l[h]
88 2222

样例 1 解释

上图的激光玩具正对应该测试用例。Pavement 可以以 9+1=109 + 1 = 10 美元的总价解锁第一个和第二个滑动墙。然后他可以将第一个滑动墙滑动到覆盖第 4477 列,将第二个滑动墙滑动到覆盖第 5577 列。

这样一来,66 束激光(第 1,2,3,8,9,101, 2, 3, 8, 9, 10 列)未被阻挡,这是能够实现的最大数量。

此样例适用于子任务 3,4,5,6,83, 4, 5, 6, 8

样例 2 解释

此样例适用于子任务 2288

样例 3 解释

此样例适用于子任务 1,3,4,5,6,81, 3, 4, 5, 6, 8