画展
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

译自 JOI 2019 Final T2「展覧会 / Exhibition
你将举办一个画展。在展览中,你需要将一些画放入一些画框中并摆放成一排。
展览有N幅候选画,编号从1到N。画具有大小S_i和美观度V_i
另外,有M个候选画框,编号从1到M。画框的大小为C_j
只有大小不超过C_j的画才能放入画框j中。每个画框中最多只能放一幅画。每幅要展出的画都必须放在一个画框中。
考虑到美观因素,展出的画必须满足以下条件:
  • 对于任意两幅相邻的画,右边的画框大小不小于左边的画框
  • 对于任意两幅相邻的画,右边的画的美观度不小于左边的画的美观度
你需要求出你最多能展出多少幅画。

输入描述:

从标准输入中读取数据。
第一行两个整数N和M。
接下来N行,第i行为两个整数S_iV_i
接下来M行,第i行为一个整数C_i

输出描述:

输出数据到标准输出中。
输出一行一个整数,表示你最多能展出的画的数量。
示例1

输入

复制
3 4
10 20
5 1
3 5
4
6
10
4

输出

复制
2

说明

在这个样例中,一个合法的方案是:从左往右,第二幅画放在第二个框中,第一幅画放在第三个框中。
示例2

输入

复制
3 2
1 2
1 2
1 2
1
1

输出

复制
2
示例3

输入

复制
4 2
28 1
8 8
6 10
16 9
4
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

输出

复制
3

备注:

对于所有输入数据,有

CC-BY-SA,感谢LOJ分享,译文来自 https://loj.ac/problem/3011