AT_joig2026final_k お菓子詰め (Packing Snacks)
题目描述
葵平时喜欢做糕点,经常会把自己制作的糕点分发给他人。葵答应在 JOI 纪念日送糕点给比太郎。
当天,葵制作了 $N$ 个糕点。每个糕点有一种类型和一个大小,类型用 $1$ 到 $T$ 之间的整数表示。这些糕点编号为 $1$ 到 $N$。第 $i$ 个糕点($1 \leq i \leq N$)的类型为 $A_i$,大小为 $C_i$。葵会在这 $N$ 个糕点中,选出恰好 $M$ 个带到比太郎家,其中 $1 \leq M \leq N$。
比太郎有 $M$ 个袋子,袋子编号为 $1$ 到 $M$。第 $j$ 个袋子($1 \leq j \leq M$)只能放类型为 $B_j$ 且大小不超过 $D_j$ 的糕点,且每个袋子最多只能放一个糕点。比太郎会把葵带来的 $M$ 个糕点中,能放进袋子的所有糕点都拿走。
比太郎想拿到尽可能多的糕点,会合理分配带来的糕点放到袋子里。另一方面,葵还想把糕点分一些给其他人,所以会选择让比太郎能拿到的糕点数尽量少的方案,并且她已经知道比太郎袋子的信息。
给定糕点和袋子的相关信息,编写程序计算比太郎最终能得到的糕点数。
---
输入格式
输入从标准输入获得,格式如下:
> $N\ M\ T$
> $A_1\ C_1$
> $A_2\ C_2$
> $\vdots$
> $A_N\ C_N$
> $B_1\ D_1$
> $B_2\ D_2$
> $\vdots$
> $B_M\ D_M$
---
输出格式
输出比太郎能拿到的糕点数,输出一行。
---
说明/提示
### 子任务
1. ($12$ 分) $T = 1$。
2. ($17$ 分) $N \leq 10$。
3. ($9$ 分) $N = M = T$,并且 $A_i = B_i = i \ (1 \leq i \leq N)$。
4. ($36$ 分) $N \leq 5\,000$。
5. ($26$ 分) 没有额外限制。
---
### 样例解释 1
若葵带着第 $1, 3, 5$ 号糕点去比太郎家时,比太郎能拿到的糕点最少。在这种情况下,比太郎可以如下分配,把最多 $2$ 个糕点放入袋子并拿到:
- 把糕点 $1$ 放进袋子 $1$。
- 把糕点 $5$ 放进袋子 $2$。
在任何情况下,葵都不能让比太郎拿到比 $2$ 更少的糕点,因此应输出 $2$。
该输入样例符合子任务 $1, 2, 4, 5$ 的限制。
---
### 样例解释 2
若葵带着第 $1, 4, 5$ 号糕点去比太郎家时,比太郎能拿到的糕点最少。在这种情况下,比太郎可以如下分配,把最多 $1$ 个糕点放入袋子并拿到:
- 把糕点 $1$ 放进袋子 $1$。
在任何情况下,葵都不能让比太郎拿到比 $1$ 更少的糕点,因此应输出 $1$。
该输入样例符合子任务 $2, 4, 5$ 的限制。
---
### 样例解释 3
该输入样例符合子任务 $2, 3, 4, 5$ 的限制。
---
### 样例解释 4
该输入样例符合子任务 $2, 4, 5$ 的限制。
# 数据范围与限制
- $1 \leq N \leq 500\,000$。
- $1 \leq M \leq \min(N, 5\,000)$。
- $1 \leq T \leq N$。
- $1 \leq A_i \leq T \quad (1 \leq i \leq N)$。
- $1 \leq C_i \leq 10^9 \quad (1 \leq i \leq N)$。
- $1 \leq B_j \leq T \quad (1 \leq j \leq M)$。
- $1 \leq D_j \leq 10^9 \quad (1 \leq j \leq M)$。
- 输入的所有值均为整数。
由 ChatGPT 5 翻译