#P51290. 「JOISC 2020 Day4」治疗计划

「JOISC 2020 Day4」治疗计划

题目描述

题目译自 JOISC 2020 Day4 T3「治療計画 / Treatment Project

JOI 国有 NN 个房屋,并从 11NN 编号。这些房屋沿一条直线升序排列。每个房屋有一个居民住在里面。住在编号为 xx 的房屋里的居民用居民 xx 表示。

最近,新冠病毒出现了,并且所有居民都被感染了。为了解决这个问题,有 MM 个治疗方案被提出。第 i (1iM)i\ (1\le i\le M) 个治疗方案的花费为 CiC_i。如果执行计划 ii,则会发生以下事件:

  • 在第 TiT_i 天的晚上,如果居民 xx 满足 LixRiL_i\le x\le R_i,且他感染了新冠病毒,那么他就会被治愈。

病毒按如下方式传染相邻的居民:

  • 如果在某天的早晨,居民 x (1xN)x\ (1\le x\le N) 被病毒感染,那么在同一天的中午,居民 x1x-1(如果 x2x\ge 2)和居民 x+1x+1(如果 xN1x\le N-1)就会被感染。

一个已经被治愈的居民可以再次被病毒感染。

你是 JOI 国的首相,你需要选取某些方案,使得满足以下条件:

  • 条件:在所有被选中的方案全部执行后,没有居民感染病毒。

在某一天可以执行多个计划。

写一个程序,给定房屋和治疗计划的信息,求出能否满足以上条件,若满足,求出最小可能花费。

输入格式

从标准输入中读取以下内容:

第一行两个整数 N,MN,M

接下来 MM 行,每行四个整数 Ti,Li,Ri,CiT_i,L_i,R_i,C_i,表示一个治疗方案。

输出格式

输出一行到标准输出。如果条件无法满足,则输出 1-1,否则输出最小总花费。

样例 1

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

在样例 11 中,你可以按照如下方式执行计划:

  • 在第二天的晚上,执行计划 11,之后居民 5,6,7,8,9,105,6,7,8,9,10 被治愈了,现在只有居民 1,2,3,41,2,3,4 被病毒感染;
  • 在第三天的中午,居民 55 被病毒感染。现在居民 1,2,3,4,51,2,3,4,5 被病毒感染;
  • 在第四天的中午,居民 66 被病毒感染。现在居民 1,2,3,4,5,61,2,3,4,5,6 被病毒感染;
  • 在第四天的晚上,执行计划 55,之后居民 1,2,31,2,3 被治愈了,现在只有居民 4,5,64,5,6 被病毒感染;
  • 在第五天的中午,居民 3,73,7 被病毒感染。现在居民 3,4,5,6,73,4,5,6,7 被病毒感染;
  • 在第五天的晚上,执行计划 33,之后居民 3,4,5,6,73,4,5,6,7 被治愈了,现在没有居民被感染了。

执行计划 1,3,51,3,5 的总花费为 77。并且没有比这个花费更少且满足条件的方案,所以输出 77

10 5
2 6 10 3
1 1 5 5
5 2 7 3
8 6 10 4
4 1 3 1
-1

因为无法满足条件,所以输出 1-1

10 5
1 5 10 4
1 1 6 5
1 4 8 3
1 6 10 3
1 1 3 1
7

这组样例满足子任务 1 的限制。

数据范围与提示

对于所有数据,满足 1N109,1M1051\le N\le 10^9,1\le M\le 10^5,保证:

  • 1Ti,Ci109 (1iM)1\le T_i,C_i\le 10^9\ (1\le i\le M)
  • 1LiRiN (1iM)1\le L_i\le R_i\le N\ (1\le i\le M)

详细子任务及附加限制如下表所示:

子任务编号 附加限制 分值
11 Ti=1 (1iM)T_i=1\ (1\le i\le M) 44
22 M16M\le 16 55
33 M5×103M\le 5\times 10^3 3030
44 无附加限制 6161