#6983. 材料结算(material)

材料结算(material)

材料结算(material)

题目描述

某工厂正在执行一批特殊加工任务。

工厂记录了连续 (m) 天的材料消耗标准,第 (i) 天的消耗标准为 (ai)(a_i)。

共有 (n) 个候选加工任务。

第 (i) 个任务对应一个日期区间 (Li,Ri)(L_i,R_i),完成后可以获得 (v_i) 的收益。

一个任务需要消耗的材料数量,等于该日期区间内每天材料消耗标准之和。

每个任务最多执行一次。

所有任务相互独立,即使日期区间重叠也可以同时执行,材料消耗分别计算。

现在工厂要求:所有被选择任务的材料消耗总量必须恰好等于 (V)。

请计算满足条件时可以获得的最大总收益。

如果不存在满足要求的任务选择方案,输出 -1。

输入格式

第一行包含三个整数 (m,n,V)。

第二行包含 (m) 个正整数 (ai)(a_i)。

接下来 (n) 行,每行包含三个整数 (Li,Ri,vi)(L_i,R_i,v_i)。

输出格式

输出最大总收益,无解输出 -1。

输入输出样例 #1

输入

5 4 8
2 3 4 1 2
1 2 5
3 4 7
2 3 8
4 5 4

输出

11

样例解释

各任务的材料消耗分别为 5、5、7、3。

可以选择第 2 个与第 4 个任务:

总消耗为 (5+3=8)。

总收益为 (7+4=11)。

数据范围

  • (1≤m≤105)(1\le m\le10^5)
  • (1≤n≤100)(1\le n\le100)
  • (1≤V≤2000)(1\le V\le2000)
  • (1≤ai≤1000)(1\le a_i\le1000)
  • (1≤Li≤Ri≤m)(1\le L_i\le R_i\le m)
  • (1≤vi≤10000)(1\le v_i\le10000)

测试点编号 层级 m n V 数据特征 标准输出 设计目的
1 弱数据 1 5 单笔任务恰好耗尽材料 10 检查最小规模与基础转移
2 边界数据 3 单日费用达 2×10⁹,前缀和超过 int -1 检查大前缀和与超预算任务跳过
3 弱数据 所有任务费用均为 2 检查费用组合无法恰好达到 V
4 基础数据 5 4 10 包含 L=1、单日及跨日区间 21 检查前缀和边界和多种精确组合
5 正常数据 4 8 多个任务区间相互重叠 25 检查重叠区间仍作为独立任务
6 2 10 四笔任务使用完全相同的区间 70 检查相同费用任务可分别选择、每笔最多一次
7 边界数据 4 5 包含两笔费用为 0 的任务 32 检查零费用任务及精确容量状态
8 较强数据 2 10 高收益任务费用为 6,不能补足容量 20 区分“不超过容量”和“必须恰好装满”
9 极限价值 4 5 2000 四笔费用 500、收益 2×10⁹ 的任务 8000000000 检查精确组合和 long long 累加
10 极限规模 100000 100 每日费用为 1,100 笔任务费用均为 20 100000000000 检查最大天数、最大预算和整体性能