#HK4990. 「POI 2023/2024 R2」Liczniki

「POI 2023/2024 R2」Liczniki

题目描述

题目译自 XXXI Olimpiada Informatyczna – II etap Liczniki

Bajtazar 租住在一套公寓里,每月需记录公寓内 nn 个水表的读数。房东记录的第 ii 个水表初始读数为 sis_i 拜托立方米。不同水表的水价各异,第 ii 个水表计量的每拜托立方米水费用为 cic_i 拜托拉。

Bajtazar 已在此居住 mm 个月,每月记录了 nn 个读数,希望提交给房东作为当月水表数据。但他需先整理记录:每月将 nn 个读数分配到水表,分配顺序在不同月份可不同,但同一水表在后一月份的读数不得小于前一月份或初始读数。

房东将根据最后月份的分配读数计算 Bajtazar 的总水费,即各水表费用之和,其中第 ii 个水表费用为 cic_i 乘以最后月份读数与 sis_i 的差值。你的任务是计算 Bajtazar 能获得的最小总水费,或判断是否无法按上述条件分配读数。

输入格式

第一行包含两个正整数 n,mn, m (nm300000)(n \cdot m \leq 300000),分别表示水表数量和月份数。

第二行包含 nn 个整数 cic_i (1ci1000000)(1 \leq c_i \leq 1000000),表示第 ii 个水表每拜托立方米的费用(单位:拜托拉)。

第三行包含 nn 个整数 sis_i (0si1000000)(0 \leq s_i \leq 1000000),表示第 ii 个水表的初始读数(单位:拜托立方米)。

接下来的 mm 行,每行包含 nn 个整数 ai,ja_{i,j} (0ai,j1000000)(0 \leq a_{i,j} \leq 1000000),表示第 ii 个月的第 jj 个记录值。

输出格式

若无法按条件分配读数,输出 NIE

否则,输出一个整数,表示 Bajtazar 能获得的最小总水费(单位:拜托拉)。

4 2
3 1 4 3
3 2 4 7
5 10 3 7
4 6 10 9

25

初始水表读数为 3,2,4,73, 2, 4, 7

  • 第一个月读数 [5,10,3,7][5, 10, 3, 7] 可分配为水表顺序 3,10,5,73, 10, 5, 7
  • 第二个月读数 [4,6,10,9][4, 6, 10, 9] 可分配为水表顺序 4,10,6,94, 10, 6, 9

总水费为 $3 \cdot (4-3) + 1 \cdot (10-2) + 4 \cdot (6-4) + 3 \cdot (9-7) = 25$。

可验证这是最小水费。

附加样例

  1. n=m=1n=m=1ci=1000000,si=0c_i = 1000000, s_i = 0 对于 1in1 \leq i \leq na1,1=1000000a_{1,1} = 1000000,答案为 10000000000001000000000000
  2. n=6,m=10n=6, m=10ci=i+1,si=0c_i = i+1, s_i = 0 对于 1in1 \leq i \leq nai,j=ja_{i,j} = j 对于 1im,1jn1 \leq i \leq m, 1 \leq j \leq n,答案为 7777
  3. n=150000,m=2n=150000, m=2ci=1,si=2ic_i = 1, s_i = 2 \cdot i 对于 1in1 \leq i \leq nai,j=ija_{i,j} = i \cdot j 对于 1im,1jn1 \leq i \leq m, 1 \leq j \leq n,答案为 NIE
  4. n=150000,m=2n=150000, m=2ci=i,si=0c_i = i, s_i = 0ai,j=30i+(jmod17)+1a_{i,j} = 30 \cdot i + (j \bmod 17) + 1 对于 1im,1jn1 \leq i \leq m, 1 \leq j \leq n,答案为 744488775021744488775021

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务编号 附加限制 分值
11 si=0s_i = 0 88
22 m10,n6m \leq 10, n \leq 6 1212
33 m=1,n300m = 1, n \leq 300 2020
44 m=1,n5000m = 1, n \leq 5000 1010
55 nm5000n \cdot m \leq 5000 1515
66 无附加限制 3535