滑草技能
时间限制:1秒 内存限制:256M
【问题描述】
小H 中秋节到金佛山去滑草,不过他不太会玩,只是一个技能水平为 1 的渣渣。小H 从 0 时刻进入滑草场,时刻 \(T\) 必须离开。滑草场里有 \(N\) 条斜坡坡,第 \(i\) 条斜坡滑行一次需要 \(D_i\) 分钟,技能水平达到 \(C_i\) 或以上时才能进入。小H决心参加一些滑草课程以提高自己的技能水平,这样可以在有限的时间内多滑几次。
为满足游客需要,景区经营者提供了 \(S\) 门滑草技能培训课,第 \(i\) 门课程开始时刻为 \(M_i\),持续 \(L_i\) 分钟,如果想参加课程,就不能迟到或早退。小H 上完第 \(i\) 门课之后,他的滑雪技能水平将变成 \(A_i\)(注意,不是增加 \(A_i\),而是达到\(A_i\)),所以,胡乱上课的话反而可能使得滑雪技能下降。
小H 在 0 时刻到 \(T\) 时刻之内,可以随意安排自己的时间:滑草、上课或者悠闲第坐下来仰望蔚蓝的天空。那么请问他该如何安排他的时间,才能使得自己滑草的次数达到最大。
【输入格式】
第 1 行包含三个整数 \(T,S\) 和 \(N\),其中 \(T\) 表示小H 可以支配的时间从时刻\(0\) 到时刻 \(T\),\(S\) 表示滑草场提供的技能培训课数目,\(N\) 表示有滑草斜坡数目;
第 2 行到第 \(S+1\) 行,第 \(i+1\) 行描述了第 \(i\) 门滑草技能培训课,分别为 \(M_i,L_i\) 和 \(A_i\),其中 \(M_i\) 表示第 \(i\) 门课的开始时刻,\(L_i\) 表示课程持续时长(单位分钟),\(A_i\) 表示参加第 \(i\) 门课培训后技能达到的水平值;
第 \(S+2\) 行到第 \(S+N+1\) 行,第 \(S+i+1\) 行描述了第i条滑草斜坡,分别为 \(C_i\) 和 \(D_i\),其中 \(C_i\) 表示第 \(i\) 条斜坡需要的技能水平,\(D_i\) 表示第 \(i\) 条斜坡滑行一次需要的时间(单位分钟)。
【输出格式】
输出一个整数,表示小H 可以滑完的最大斜坡数。
【输入输出样例】
Input
10 1 2
3 2 5
4 1
1 3
Output
6
【输入输出样例解释】
先滑 1 次 2 号斜坡,然后去上课,再去滑 1 号破,可以连滑 5 次。
【数据限制】
\(100\%\) 的数据满足,\(1≤T,M_i,L_i≤10^4\),\(1≤N≤10^5\),\(1≤S,A_i,C_i,D_i≤100\)。
【来源】
Mr.he**