第 2 题 烤肉派对 (party)
时间限制 1.0 s · 空间限制 256 MB · 119 个测试点 · 全文比较(过滤行末空格及文末回车)
本题使用文件输入输出:输入文件 party.in,输出文件 party.out。
按照署名—非商业性使用—相同方式共享 4.0 协议国际版进行授权。
题目描述
今天是烤肉派对的日子。为了配合派对的氛围,在一条很长的烤架上总共放了 N 块烤得很香的肉。
将这条烤架视为一条长度为 109 的线段,左端为坐标 0,右端为坐标 109。每块肉都占据烤架上的某个区间,并且拥有一个用正整数表示的“美味值”。第 i 块肉(1≤i≤N)占据区间 [si,ei],其美味值为 ti。多块肉可能重叠放置。
派对共有 M 个人参加。每个人按照编号从 1 到 M 依次站到烤架前,各自领取要吃的烤肉。领取方法如下:
- 第 j 个人(1≤j≤M)带来了两根长签子,并分别插入坐标 aj+0.1 和 bj+0.9 的位置(其中 aj≤bj)。插入坐标 x 的签子会贯穿所有满足 si≤x≤ei 的第 i 块肉。
- 然后,他会整根地拔起签子带回座位。此时,只要有一块肉被两根签子都贯穿,就可以被带走并从烤架上移除。
- 如果只有一根签子贯穿了一块肉,那么这块肉在途中会掉到地上,无法带回座位吃。
- 也就是说,只有同时被两根签子贯穿的肉才能顺利被带走并吃掉。
你是这场派对的主办者,对每个人究竟带走了哪些肉感到好奇。请计算出每个人最终能够吃掉的肉的美味值总和(注意不包括在途中掉落的肉)。
输入格式
第一行输入两个整数 N 和 M,分别表示烤肉的数量和参加派对的人的数量。
接下来 N 行中,第 i 行包含三个整数 si,ei,ti,表示第 i 块肉所占据的区间和其美味值。
接下来 M 行中,第 j 行包含两个整数 aj,bj,表示第 j 个人插入签子的两个坐标。
输出格式
输出 M 行,其中第 j 行输出第 j 个人能够吃到的肉的美味值总和。
样例
样例 1
输入:
文本
5 3
2 7 3
5 6 9
3 5 2
1 3 6
4 8 7
3 6
2 4
5 5
输出:
样例 2
输入:
文本
6 3
1 12 1
2 11 10
3 10 100
4 9 1000
5 8 10000
6 7 100000
1 11
5 9
6 8
输出:
样例 3
输入:
文本
5 2
1 5 5
2 6 2
4 8 3
5 9 4
7 11 6
4 5
8 10
输出:
提示
限制条件
- 所有给定数值均为整数。
- 1≤N,M≤250000
- 0≤si<ei≤109 (1≤i≤N)
- 1≤ti≤109 (1≤i≤N)
- 0≤aj≤bj≤109−1 (1≤j≤M)
子任务
- (5 分)N,M≤1000
- (9 分)ei−si≤5 (1≤i≤N)
- (11 分)si<si+1,ei>ei+1 (1≤i≤N−1)
- (23 分)ei−si=e1−s1 (2≤i≤N)
- (52 分)无额外限制
翻译由 ChatGPT-4o 完成