取餐 - 代码源竞赛平台

题目描述

一家餐厅按顺序摆放了 nn 道菜,编号为 1,2,…,n1,2,\ldots,n。共有 mm 位顾客依次取餐,按取餐顺序编号为 1,2,…,m1,2,\ldots,m。每位顾客都会从第 11 道菜取到第 nn 道菜,每道菜恰好取一份,最后结账。

第 ii 道菜的原价为 pip_i 元,折扣价为 did_i 元,其中 0≤di≤pi0\le d_i\le p_i。餐厅对每道菜分别规定一个整数 tit_i:前 tit_i 位顾客取这道菜时支付原价,其余顾客支付折扣价。

也就是说,第 jj 位顾客购买第 ii 道菜的价格为:

  • 若 j≤tij\le t_i,则支付 pip_i 元;
  • 若 j>tij>t_i,则支付 did_i 元。

请求出每位顾客需要支付的总金额。

输入格式

第一行包含两个正整数 n,mn,m,分别表示菜品数量和顾客数量。

接下来 nn 行,第 ii 行包含三个整数 pi,di,tip_i,d_i,t_i,分别表示第 ii 道菜的原价、折扣价和需要支付原价的顾客数量。

输出格式

输出一行,包含 mm 个整数,依次表示第 1,2,…,m1,2,\ldots,m 位顾客需要支付的总金额。

样例

3 5
10 6 2
8 3 0
5 2 4
18 18 14 14 11
2 3
7 0 0
4 1 3
4 4 4

样例解释

对于样例 11,第 1,21,2 位顾客均需支付 10+3+5=1810+3+5=18 元,第 3,43,4 位顾客均需支付 6+3+5=146+3+5=14 元,第 55 位顾客需支付 6+3+2=116+3+2=11 元。

对于样例 22,第一道菜从第 11 位顾客起就使用折扣价,每份为 00 元;第二道菜对全部 33 位顾客均使用原价,每份为 44 元。因此每位顾客都需支付 44 元。

数据规模

本题各子任务单独计分。须通过某子任务包含的所有测试点,方可获得该子任务的分数。

子任务编号 分数 n≤n\le m≤m\le
11 3030 20002000 20002000
22 7070 2×1052\times 10^5 2×1052\times 10^5

对于 100%100\% 的数据,1≤n,m≤2×1051\le n,m\le 2\times 10^5,0≤di≤pi≤1090\le d_i\le p_i\le 10^9,0≤ti≤m0\le t_i\le m。