#P2058. SoEasy[Ⅳ]

SoEasy[Ⅳ]

大家都知道图论算法一般不会难,关键是在你能否对一道题有正确的建模思路,而学图论的本质也是为了锻炼建模的思维。所以我不想浪费你宝贵的时间猜测该题算法,所以我直接告诉你这是一道经典的线性规划和网络流的题目。

题目描述如下:

假设有来自n 个不同单位的代表参加一次国际会议。每个单位的代表数分别为
ri,i=1,2,...,n 。会议餐厅共有m张餐桌,每张餐桌可容纳ci(i=1,2, ,m) 个代表就餐。
为了使代表们充分交流,希望从同一个单位来的代表不在同一个餐桌就餐。试设计一个算法,
给出满足要求的代表就餐方案。
编程任务:
对于给定的代表数和餐桌数以及餐桌容量,编程计算满足要求的代表就餐方案。

Input

输入多组数据。
文件第1行有2个正整数m和n,m表示单位数,n表示餐桌数。文件第2 行有m个正整数,分别表示每个单位的代表数。文件第3 行有n个正整数,分别表示每个餐桌的容量。
(1<=m<=150, 1<=n<=270)

Output

因为本题正确结果存在特判的原因。所以,就不需要你给出就餐方案了。只要存在方案你只要输出“YES”,否则“NO”(不包括引号)

Sample Input

4 5
4 5 3 5
3 5 2 6 4

Sample Output

YES

HINT

Source