#joi2019hob. [joi2019ho_b]展覧会 (Exhibition)
[joi2019ho_b]展覧会 (Exhibition)
将以下文本翻译成中文,要求显示为markdown格式,不要渲染:
你计划举办一次绘画展览。在展览中,你打算把一些画放在画框里,从左到右排列展示。
有N幅候选画可以展示,每幅画都有一个从1到N的编号。第i幅画(1≤i≤N)的大小为Si,价值为Vi。
此外,还有M个画框可用,每个画框都有一个从1到M的编号。第j个画框(1≤j≤M)的大小为Cj。画框j只能放入大小不超过Cj的画。每个画框最多只能放入一幅画。
所有展示的画都必须放在画框中。为了美观,在以下条件下,展示的画必须满足:
- 对于任何相邻的两幅画,右边画所在的画框的大小必须大于等于左边画所在的画框的大小。
- 对于任何相邻的两幅画,右边画的价值必须大于等于左边画的价值。
你希望尽可能展示更多的画。
给定候选画的数量、画框的数量以及它们的大小和价值,请编写程序来计算能够展示的画的最大数量。
输入
输入通过标准输入给出,具体格式如下:
N M S1 V1 ⋮ SN VN C1 ⋮ CM
输出
请将展览中展示的画的最大数量以一行输出到标准输出。
约束条件
- 1≤N≤100,000。
- 1≤M≤100,000。
- 1≤Si≤1,000,000,000(1≤i≤N)。
- 1≤Vi≤1,000,000,000(1≤i≤N)。
- 1≤Cj≤1,000,000,000(1≤j≤M)。
子任务
- (10分)N≤10,M≤10。
- (40分)N≤1,000,M≤1,000。
- (50分)无额外约束。
输入示例1
3 4
10 20
5 1
3 5
4
6
10
4
输出示例1
2
在此示例中,你可以按照顺序将(画2,画框2)和(画1,画框3)排列起来,以展示两幅画。由于不能展示三幅以上的画,因此输出2。这里,(画i,画框j)表示画框j里的画i。
输入示例2
3 2
1 2
1 2
1 2
1
1
输出示例2
2
输入示例3
4 2
28 1
8 8
6 10
16 9
4
3
输出示例3
0
输入示例4
8 8
508917604 35617051
501958939 840246141
485338402 32896484
957730250 357542366
904165504 137209882
684085683 775621730
552953629 20004459
125090903 607302990
433255278
979756183
28423637
856448848
276518245
314201319
666094038
149542543
输出示例4
3