P1937 [USACO10MAR] Barn Allocation G
题目描述
农夫约翰最近开了一个新的牲口棚。因为其中的一些畜栏风景更好,所以奶牛们向约翰发出了希望分配畜栏的申请。
牲口棚有 $N$ 个畜栏 $(1 \le N \le 100,000)$,方便起见,我们把它们编号为 $1 \sim N$,畜栏 $i$ 能容纳 $C_i$ 头牛 $(1 \le Ci \le 100,000)$。第 $i$ 头牛申请为它分配 $A_i$ 到 $B_i$ 的编号连续的畜栏来让它散步 $(1 \le A_i \le B_i \le N)$。换言之,这头奶牛希望能自由地访问畜栏 $A_i \sim B_i$,而为了满足它的要求,你需要在 $A_i \sim B_i$ 范围内的畜栏中为它预留至少一单位容量。
给出 $M$ 个畜栏分配请求 $(1 \le M \le 100,000)$,回答最多能满足多少头牛的要求而不增加额外的畜栏。
输入格式
第一行包括两个以空格隔开的正整数:$N,M$。
第二行到第 $N+1$ 行:第 $i+1$ 行每行包括一个整数:$C_i$。
第 $N+2$ 到第 $N+M+1$ 行:第 $i+N+1$ 行每行包括两个整数 $A_i,B_i$。
输出格式
仅一行:能满足的最大要求数。
说明/提示
考虑以下例子:
```plain
畜栏号: 1 2 3 4 5
+---+---+---+---+---+
容纳空间: | 1 | 3 | 2 | 1 | 3 |
+---+---+---+---+---+
Cow 1 XXXXXXXXXXX (1, 3)
Cow 2 XXXXXXXXXXXXXXX (2, 5)
Cow 3 XXXXXXX (2, 3)
Cow 4 XXXXXXX (4, 5)
```
约翰显然不能满足所有的需求,因为畜栏 $3,4$ 请求太多了。
经过试验,我们发现,我们能满足牛 $1,3,4$ 的需求,所以这组数据答案为 $3$。
Source: USACO 2010 March Gold
Translator: @chrome01, @Hootime