#USACO631. [USACO 6.3.1]Fence Rails

[USACO 6.3.1]Fence Rails

栅栏木板

Burch, Kolstad, and Schrijvers

农夫约翰正在他的田地里建造栅栏。他已经决定了栅栏的形状,并且已经安装了立柱,但他在木板方面遇到了问题。当地的木材店送来了长度各异的木板;农夫约翰必须从这些木板中制造出所需数量的栅栏杆。

当然,农夫约翰可以切割木板,所以一块9英尺的木板可以切成一个5英尺的栏杆和一个4英尺的栏杆(或者三个3英尺的栏杆,等等)。农夫约翰有一个“理想锯”,所以忽略锯缝(锯切过程中损失的长度);假设可以进行完美切割。

所需栏杆的长度可能包含重复(例如,可能需要一个3英尺的栏杆和另一个3英尺的栏杆)。不需要制造超过所需数量的栏杆(或任何种类的栏杆)。

程序名称:fence

输入格式

内容
1 N (1 ≤ N ≤ 50),木板的数量
2..N+1 N行,每行一个整数,表示一块供应木板的长度
N+2 R (1 ≤ R ≤ 1023),所需栏杆的数量
N+3..N+R+1 R行,每行一个整数 (1 ≤ ri ≤ 128),表示所需一根栏杆的长度

样例输入(文件 fence.in)

4
30
40
50
25
10
15
16
17
18
19
20
21
25
24
30

输出格式

一行一个整数,表示可以从供应木板中切割出的栅栏杆的总数。当然,可能无法从给定的木板中切割出所有所需的栏杆。

样例输出(文件 fence.out)

7