0
点赞
收藏
分享

微信扫一扫

桶列表(寒假每日一题 32)

Farmer John 正在考虑改变他给奶牛分配牛奶桶的方式。

他希望使用尽量少的牛奶桶,请帮助他!

Farmer John 有 桶列表(寒假每日一题 32)_数据 头奶牛,编号为 桶列表(寒假每日一题 32)_ios_02

桶列表(寒假每日一题 32)_差分_03 头奶牛需要从时刻 桶列表(寒假每日一题 32)_#include_04 到时刻 桶列表(寒假每日一题 32)_数据_05 之间挤奶,并且挤奶过程中需要用到 桶列表(寒假每日一题 32)_#include_06 个桶。

多头奶牛可能在同一时刻都在挤奶;每个桶在每个时刻只能供一头奶牛使用。

也就是说,第 桶列表(寒假每日一题 32)_差分_03 头奶牛在时刻 桶列表(寒假每日一题 32)_#include_04 到时刻 桶列表(寒假每日一题 32)_数据_05 之间挤奶时,如果用到了某个桶,则该桶在这段时间不能被其他奶牛使用。

当然,这个桶在这段时间之外可以被其他奶牛所使用。

为了简化他的工作,FJ 保证在任一时刻,至多只有一头奶牛开始或是结束挤奶(也就是说,所有的 桶列表(寒假每日一题 32)_#include_04桶列表(寒假每日一题 32)_数据_05 各不相同)。

FJ 有一个储藏室,里面有编号为 桶列表(寒假每日一题 32)_数据_12…… 的桶。

在他的挤奶策略中,当某一头奶牛(比如说,奶牛 桶列表(寒假每日一题 32)_差分_03)开始挤奶(在时刻 桶列表(寒假每日一题 32)_#include_04),FJ 就跑到储藏室取出编号最小的 桶列表(寒假每日一题 32)_#include_06 个桶分配给第 桶列表(寒假每日一题 32)_差分_03 头奶牛用来挤奶。

请求出 FJ 需要在储藏室中存放多少个桶才能使得他能够顺利地给所有奶牛挤奶。

输入格式
输入的第一行包含 桶列表(寒假每日一题 32)_数据

以下 桶列表(寒假每日一题 32)_数据 行,每行描述了一头奶牛,包含三个空格分隔的数 桶列表(寒假每日一题 32)_ios_19

其中 桶列表(寒假每日一题 32)_#include_04桶列表(寒假每日一题 32)_数据_05 均为 桶列表(寒假每日一题 32)_数据_22 之间的整数,桶列表(寒假每日一题 32)_#include_06桶列表(寒假每日一题 32)_ios_24 之间的整数。

输出格式
输出一个整数,为 FJ 需要的桶的数量。

数据范围
桶列表(寒假每日一题 32)_ios_25

输入样例:

3
4 10 1
8 13 3
2 6 2

输出样例:

4

样例解释
在这个例子中,FJ 需要 4 个桶:他用桶 1 和桶 2 来给奶牛 3 挤奶(从时刻 2 开始)。

他用桶 3 给奶牛 1 挤奶(从时刻 4 开始)。

当奶牛 2 在时刻 8 开始挤奶时,桶 1 和桶 2 可以再次利用,然而桶 3 不可以,所以他会使用桶 1、桶 2 和桶 4。

#include<iostream>

using namespace std;

const int N = 1010;

int n;
int b[N];

void insert(int l, int r, int w){

b[l] += w;
b[r] -= w;
}

int main(){

cin >> n;

int m = n;
while(m--){

int s, t, x;
cin >> s >> t >> x;
insert(s, t, x);
}

int res = 0;
for(int i = 1; i <= N; i++) b[i] += b[i - 1], res = max(res, b[i]);

cout << res << endl;

return 0;
}


举报

相关推荐

0 条评论